求二维数组的每行的和,和每列的和,还有对角线的和

mac2026-04-12  4

#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; }
最新回复(0)