二维数组的各行各列的和的运算及所有元素和的运算

针对一个三行三列的二维数组,要求他的各行各列的和及所有元素的和,这能用一个程序来完成吗?应该咋样编写。能帮助我写一个完整的程序吗?鄙人非常感谢,但由于时间的关系,能否有谁在明天中午之前给一个结果。

#include <stdio.h>

void main()
{
int a[3][3];
int i,j,sumColumn[3] = {0,0,0},sumline[3] = {0,0,0},sumTotal=0;
printf("请输入数组的值:\n");
for(i=0;i<3;i++)
for(j=0;j<3;j++)
{
scanf("%d",&a[i][j]);
}

for(i=0;i<3;i++)
for(j=0;j<3;j++)
{
sumColumn[i] += a[i][j];
}//求每行的值

for(i=0;i<3;i++)
for(j=0;j<3;j++)
{
sumline[j] += a[i][j];
}//求每列的值
for(i=0;i<3;i++)
for(j=0;j<3;j++)
{
sumTotal += a[i][j];
}//求所有元素的值

printf("输出每行的值:\n");
for(i=0;i<3;i++)
{
printf("第%d行的值为:%d\n", i, sumColumn[i]);
}

printf("输出每列的值:\n");
for(i=0;i<3;i++)
{
printf("第%d列的值为:%d\n", i, sumline[i]);
}

printf("所有元素的和:%d\n", sumTotal);
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-12-14
//---------------------------------------------------------------------------

#include <stdio.h>

void sum(int a[][3],int n,int kind)/*a是要计算的数组,n是a的行数,kind表示计算的类型,0是每行和,1是每列和,2是总*/
{
int s=0;
int i,j;
if (kind==0)
for (i = 0; i<n; i++) {
s=0;
for (j=0; j<3; j++) {
s+=a[i][j];
}
printf("第%d行的和是%d\n",i+1,s);

}
else if (kind==1) {
for (i = 0; i<3; i++) {
s=0 ;
for (j=0; j<n; j++) {
s+=a[j][i];
}
printf("第%d列的和是%d\n",i+1,s);
}
}
else if (kind==2) {
for (i = 0; i<n; i++) {
for (j=0; j<3; j++) {
s+=a[i][j];
}
}
printf("总和是%d\n",s);

}
}
int main(void)
{
int a[3][3]={1,2,3,4,5,6,7,8,9};
sum(a,3,0);
sum(a,3,1);
sum(a,3,2);
return 0;
}
//---------------------------------------------------------------------------
相似回答