C++第二次测验——二维数组各行各列之和
课程首页地址: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]<<" ";
}
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]<<" ";
}
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]<<" ";
}
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;
}
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
- 上一篇: 讲座:计算机专业及其学习
- 下一篇: C语言及程序设计提高例程-18 一维数组应用二三例
