这次学习了C语言的二维数组,并做了一个具体的应用实例:
表格中有4行3列12个数,求他们各行各列的和和12个数的总和
这里非常巧妙的增加了一行一列储存数据
每行的和 | ||||
12 | 12 | 34 | 58 | |
23 | 3 | 45 | 71 | |
2 | 43 | 78 | 123 | |
12 | 8 | 35 | 55 | |
每列的和 | 49 | 66 | 192 | 307 |
如表,红色数字为行/列的和,黄色数据为总和
实现该功能的具体程序如下:
#include<stdio.h>
int main()
{
int arr[5][4]={{12,12,34,0},{23,3,45,0},{2,43,78,0},{12,8,35,0},{0,0,0,0}};
int i,j;
for(i=0;i<5;i++)
{
for(j=0;j<4;j++)
{
printf("%d\t",arr[i][j]);
}
printf("\n");
} //这里首先将求和前的数组输出到屏幕,方便观察
printf("\n求和之后:\n");
for(i=0;i<4;i++)
{
for(j=0;j<3;j++)
{
arr[4][j]+=arr[i][j];//竖列的和
arr[i][3]+=arr[i][j];//横行的和
arr[4][3]+=arr[i][j];
}
}
for(i=0;i<5;i++)
{
for(j=0;j<4;j++)
{
printf("%d\t",arr[i][j]);
}
printf("\n");
}
return 0;
}
需要注意的是,在求和循环中,循环数是数组行数或列数减1,不要把存储和的地方也算上。
程序运行效果如下:
这只是一个简单的二维数组应用,我现在暂时只会简单的,这段代码写循环程序时比较绕,可以先列个表想一下,在写时会清楚一些