编写一个通用程序,求出二位数组(行数和列数必须相等)的非对角线的元素之和,试建立类MATRIX完成上述功能
#include<iostream> using namespace std; class MATRIX { public: void mATRIX(); void MATRIX_sum(); void MATRIX_display(); static int fact_len;//定义静态变量 private: int sum; int a[40][40]; }; int MATRIX::fact_len = 0; void MATRIX::mATRIX()//定义输入函数 { int i,j,fact_len; sum = 0; for(i = 0;i<fact_len;i++) for(j = 0;j<fact_len;j++) { cin >> a[i][j]; } } void MATRIX:: MATRIX_sum()//定义求和函数 { int i,j;//fact_len = 4; for(i = 0;i<fact_len;i++) for(j = 0;j<fact_len;j++) { if((i ==j)||(i+j ==fact_len-1)) continue; sum +=a[i][j]; } } void MATRIX::MATRIX_display()//定义显示函数 { int i,j; for(i = 0;i<fact_len;i++) { for(j = 0;j<fact_len;j++) { cout << a[i][j]<<" "; } cout <<endl; } cout << "sum="<<sum<<endl;; } int main() { MATRIX ARR_test; cout<<"please input the array you want to input:"; cin>>MATRIX::fact_len;//改变静态变量 ARR_test.mATRIX();//调用输入函数 ARR_test.MATRIX_sum();//调用求和函数 ARR_test.MATRIX_display();//调用显示函数 return 0; }
这个函数bug:
截图命令:gnome-screenshot -a
程序bug出现在我需要输入9*9的数组结果没有输入,直接输出a[9][9],不清楚哪里出问题类