输入5*5的矩阵,编程实现: 1.分别求两对角线上的各元素之和。 2.求两对角线上行,列下标均为偶

C语言
2024-11-12 19:51:11
推荐回答(2个)
回答(1):

输入数据时,各个数据之间用空格分隔,程序员代码如下。
#include
int main()
{ int i,j,s1=0,s2=0,s=0,a[5][5];
for(i=0; i<5; i++)
for(j=0; j<5; j++)
scanf("%d",&a[i][j]);
for(s1=s2=s=i=0; i<5; i++)
{ s1+=a[i][i];
s2+=a[i][4-i];
if(i%2==0)
{ s+=a[i][i];
if(i!=2)
s+=a[i][4-i];
}
}
printf("主对角线之和=%d\n",s1);
printf("次对角线之和=%d\n",s2);
printf("对角线行、列下标均为偶数元素之和=%d\n",s);
return 0;
}

回答(2):

#include "stdio.h"
#define N 5
int main(int argc,char *argv[]){
int a[N][N],i,j,sp,sm,sa;
printf("Input matrix...\n");
for(sp=sm=sa=i=0;i for(j=0;j sp+=a[i][i];
sm+=a[i][N-1-i];
sa += i&1 ? 0 : a[i][i]+(N&1 ? a[i][N-1-i] : 0);
}
printf("\nSUM1:\t%d\nSUM2:\t%d\nSUM:\t%d\n",sp,sm,sa-(N&1 ? a[N/2][N/2] : 0));
return 0;
}

运行样例: