急求!!!!!C语言程序设计高手来!

2025-03-02 02:21:45
推荐回答(5个)
回答1:

加分吧。

#include

#define N 4

main()
{
int a[N][N],i,j,sum=0;

printf("输入%d×%d矩阵的元素:",N,N);
for(i=0;i for(j=0;j {
scanf("%d",&a[i][j]);
}
for(i=0;i {
sum+=a[i][i];
sum+=a[i][N-i-1];
}
printf("主次对角线元素之和:%d\n",sum);
}

补充:
偶数阶矩阵,没有中间的数,不存在加两次的情况!

回答2:

/*改过了,对于低阶的矩阵这样很简单,你要是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();
}

回答3:

#include
#define n 4
void main()
{int i,j,sum1=0,sum2=0;
pirntf("please input :\n");
for(i=0;i for(j=0;j {
scanf("%d",&a[i][j]);
}
for(i=0;i for(j=0;j {if(i==j) sum1+=a[i][j];/*主对角线和为sum1,次对角线之和为sum2*/
if(i+j==3) sum2+=a[i][j];
}
printf("sum1=%d\nsum2=%d",sum1,sum2);
printf("\n");
}

回答4:

楼上的写得比较好,不过好像中间那个元素会被加两次……或者题目就是这样要求的?
To 高金山,但你这样使用了一个宏定义,以后要是其它人使用的时候万一改成奇数的呢,虽然应该是没有人会重用,但是这样的话,你定义一个宏不就没有意义了,我觉得既然要写,就尽量写好点

回答5:

楼上写的麻烦 要是我要16行16列的是不是还要把对角线上的都写下来呢 好象这个题奇数要去掉中间重复值偶数无重复