#include<iostream>
using namespace std;
int main(int argc,char *argv[]){
int a[100][100];//创建一个大一点的数组,但输入的数据可以通过规定 阵列的行和列来输入
int i,j;
int row,clumn;//注意行列值,要小于数组的行列值100
int line[100];//每行元素的和
int col[100];//每列元素的值
int x,y;//正对角线,副对角线的值
int max=0; //
/*
5 5
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20
21 22 23 24 25
*/
while(cin>>row>>clumn){
for(i=0;i<row;i++){//给二维数组赋值
for(j=0;j<clumn;j++){
cin>>a[i][j];
}
}
//计算每行,列,对角线的值
//--初始化
x=0;
y=0;
for(i=0;i<row;i++){
line[i]=0;
}
for(j=0;j<clumn;j++){
col[i]=0;
}
max=row>clumn?row:clumn;//这个主要是对方阵,如果不是方阵,那就会默认填充成方阵,数组外的其它地方没有赋值
/*
1 2 3
2 4 6
1 2 3//把上面的行列式变成这样
2 4 6
0 0 0
*/
//--计算
for(i=0;i<row;i++){
for(j=0;j<clumn;j++){
line[i]+=a[i][j];
col[j]+=a[i][j];
if(i==j) x=x+a[i][j];
if(i+j == max-1) y=y+a[i][j];
}
}
for(i=0;i<row;i++){
cout<<" "<<line[i];
}
cout<<endl;
for(j=0;j<clumn;j++){
cout<<" "<<col[j];
}
cout<<endl;
cout<<"x: "<<x<<endl;
cout<<"y: "<<y<<endl;
}//while
return 0;
}
求二维数组的每行的和,和每列的和,还有对角线的和
最新推荐文章于 2023-01-06 18:51:05 发布