/************************************************************************/
/* 编写一个通用程序求出二维数组非对角线上的元素之和 */
/************************************************************************/
#include <iostream>
using namespace std;
class Matrix{
int m;
int sum;
int a[40][40];
public:
Matrix(int X[][40],int k){
m=k;
for(int i=0;i<k;i++){
for(int j=0;j<k;j++){
a[i][j]=X[i][j];
}
}
sum=0;
}
void sums();
void show();
};
void Matrix::sums(){
int sum1=0,sum2=0;
for(int i=0;i<m;i++){
for(int j=0;j<m;j++){
sum2+=a[i][j];
if(i==j || i+j==m-1)
sum1+=a[i][j];
}
}
sum=sum2-sum1;
cout<<"sum="<<sum<<endl;
}
void Matrix::show(){
for(int i=0;i<m;i++){
for(int j=0;j<m;j++){
if(j<m)
cout<<a[i][j]<<" ";
}
cout<<endl;
}
}
int main(){
int a[40][40]={{1,1,1,1},{1,2,2,1},{1,2,2,1},{1,1,1,1}};
Matrix Mat(a,4);
Mat.show();
Mat.sums();
return 0;
}