加分吧。
#include
#define N 4
main()
{
int a[N][N],i,j,sum=0;
printf("输入%d×%d矩阵的元素:",N,N);
for(i=0;i
scanf("%d",&a[i][j]);
}
for(i=0;i
sum+=a[i][i];
sum+=a[i][N-i-1];
}
printf("主次对角线元素之和:%d\n",sum);
}
补充:
偶数阶矩阵,没有中间的数,不存在加两次的情况!
/*改过了,对于低阶的矩阵这样很简单,你要是16阶我肯定用别的了*/
#include "stdio.h"
#include "conio.h"
main()
{
int a[4][4]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};
int i,j;
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
printf("%4d",a[i][j]);
printf("\n");
}
printf("主次对角线和为%d\n",a[0][0]+a[1][1]+a[2][2]+a[3][3]+a[0][3]+a[1][2]+a[2][1]+a[3][0]);
getch();
}
#include
#define n 4
void main()
{int i,j,sum1=0,sum2=0;
pirntf("please input :\n");
for(i=0;i
scanf("%d",&a[i][j]);
}
for(i=0;i
if(i+j==3) sum2+=a[i][j];
}
printf("sum1=%d\nsum2=%d",sum1,sum2);
printf("\n");
}
楼上的写得比较好,不过好像中间那个元素会被加两次……或者题目就是这样要求的?
To 高金山,但你这样使用了一个宏定义,以后要是其它人使用的时候万一改成奇数的呢,虽然应该是没有人会重用,但是这样的话,你定义一个宏不就没有意义了,我觉得既然要写,就尽量写好点
楼上写的麻烦 要是我要16行16列的是不是还要把对角线上的都写下来呢 好象这个题奇数要去掉中间重复值偶数无重复