C语言简化,二位数组每一行 每一列的和.

题目为:求二维数组 每一行 每一列的和,我只会这样写,求简化.#include<stdio.h>int main(){int a[3][5]={{3,5,8,1,4},{34,2,67,21,6},{7,8,3,10,20}};int i,j;int sum1=0;int sum2=0;int sum3=0;int sum4=0;int sum5=0;int sum6=0;int sum7=0;int sum8=0; for(j=0;j<5;j++) { sum1+=a[0][j]; sum2+=a[1][j]; sum3+=a[2][j]; } printf ("%d\n",sum1); printf ("%d\n",sum2); printf ("%d\n",sum3); for (i=0;i<3;i++) { sum4+=a[i][0]; sum5+=a[i][1]; sum6+=a[i][2]; sum7+=a[i][3]; sum8+=a[i][4]; } printf ("%d\t",sum4); printf ("%d\t",sum5); printf ("%d\t",sum6); printf ("%d\t",sum7); printf ("%d\t",sum8); return 0;}

#include<stdio.h>
#define rmax 3 // 数组行数
#define cmax 5 //数组列数
int main()
{
    int a[rmax][cmax]={{3,5,8,1,4},{34,2,67,21,6},{7,8,3,10,20}};
    int i=0,j=0,rSum[rmax]={0},cSum[cmax]={0};
    for(i=0;i<rmax;i++)
    {
        for(j=0;j<cmax;j++)
        {
            rSum[i]=rSum[i]+a[i][j];
            cSum[j]=cSum[j]+a[i][j];
        }
        printf("第%d行和:%d\n",i+1,rSum[i]);
    }

    for(j=0;j<cmax;j++)
        printf("第%d列和:%d\n",j+1,cSum[j]);
    return 0;
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-06-26
#include<iostream>
float score[5][6] = { 91, 79, 83, 92, 85, 80,
95, 72, 81, 90, 86, 82,
96, 80, 90, 92, 84, 88,
88, 80, 78, 86, 84, 80,
77, 76, 86, 88, 80, 85 };
void main(void){
float sum1[5] = {0,0,0,0,0};//行的和
float sum2[6] = { 0, 0, 0, 0, 0 ,0};//列的和
for (int i = 0; i < 5; i++){
for (int j = 0; j < 6; j++){
sum1[i]+= score[i][j];
}
printf_s("%f\n",sum1[i]);
}
printf_s("\n");
for (int i = 0; i < 6; i++){
for (int j = 0; j < 5; j++){
sum2[i] += score[j][i];
}
printf_s("%f\n", sum2[i]);
}
getchar();
}
第2个回答  2018-06-26
#include<stdio.h>
int main()
{
int a[3][5]={{3,5,8,1,4},{34,2,67,21,6},{7,8,3,10,20}};
int i,j;
int sum1[3],sum2[5];

for(i=0;i<3;i++) sum1[i]=0;
for(i=0;i<5;i++) sum2[i]=0;

for(i=0;i<3;i++)
for(j=0;j<5;j++)
{
sum1[i]+=a[i][j];
sum2[j]+=a[i][j];
}

for(i=0;i<3;i++) printf("%d ",sum1[i]);
printf("\n");
for(i=0;i<5;i++) printf("%d ",sum2[i]);
printf("\n\n");

return 0;
}本回答被提问者采纳
相似回答