课程首页地址:http://blog.csdn.net/sxhelijian/article/details/7910565
【题目】设有int a[5][5],编写程序计算每行元素之和及每列元素之和。
解法一:各行和与各列和分别计算
//设有int a[5][5],编写程序计算每行元素之和及每列元素之和。 #include <iostream> using namespace std; int main () { int a[5][5]; int i,j; cout<<"数组为:"<<endl; for(i=0;i<5;++i) { for(j=0;j<5;++j) { a[i][j]=i*5+j; //可以通过其他途径给数组赋值 cout<<a[i][j]<<'\t'; } cout<<endl; } int row[5]={0}, col[5]={0}; //分别存储每行元素之和及每列元素之和,元素初值均为0 //计算各行和 for(i=0;i<5;++i) { for(j=0;j<5;++j) row[i]+=a[i][j]; } //输出各行和 cout<<"各行和: "<<endl; for(i=0;i<5;++i) { cout<<"row "<<i<<": "<<row[i]<<endl; } //计算各列和 for(i=0;i<5;++i) { for(j=0;j<5;++j) col[j]+=a[i][j]; } //输出各列和 cout<<"各列和: "<<endl; for(i=0;i<5;++i) { cout<<"col "<<i<<": "<<col[i]<<endl; } return 0; }
解法二:各行和与各列和在一个循环中解决
//设有int a[5][5],编写程序计算每行元素之和及每列元素之和。 #include <iostream> using namespace std; int main () { int a[5][5]; int i,j; cout<<"数组为:"<<endl; for(i=0;i<5;++i) { for(j=0;j<5;++j) { a[i][j]=i*5+j; //可以通过其他途径给数组赋值 cout<<a[i][j]<<'\t'; } cout<<endl; } int row[5]={0}, col[5]={0}; //分别存储每行元素之和及每列元素之和,元素初值均为0 //计算各行与各列和 for(i=0;i<5;++i) { for(j=0;j<5;++j) { row[i]+=a[i][j]; col[j]+=a[i][j]; } } //输出各行和 cout<<"各行和: "<<endl; for(i=0;i<5;++i) { cout<<"row "<<i<<": "<<row[i]<<endl; } //输出各列和 cout<<"各列和: "<<endl; for(i=0;i<5;++i) { cout<<"col "<<i<<": "<<col[i]<<endl; } return 0; }
解法三:不用数组,一边计算一边输出
//设有int a[5][5],编写程序计算每行元素之和及每列元素之和。 #include <iostream> using namespace std; int main () { int a[5][5]; int i,j,sum; cout<<"数组为:"<<endl; for(i=0;i<5;++i) { for(j=0;j<5;++j) { a[i][j]=i*5+j; //可以通过其他途径给数组赋值 cout<<a[i][j]<<'\t'; } cout<<endl; } //计算各行和,并输出 cout<<"各行和: "<<endl; for(i=0;i<5;++i) { sum=0; //这个灰常关键 for(j=0;j<5;++j) { sum+=a[i][j]; } cout<<"row "<<i<<": "<<sum<<endl; } //计算各列和(类似按列序优先输出),并输出 cout<<"各列和: "<<endl; for(i=0;i<5;++i) { sum=0; //这个灰常关键 for(j=0;j<5;++j) { sum+=a[j][i]; } cout<<"col "<<i<<": "<<sum<<endl; } return 0; }