c语言3矩阵对角线元素求和

2024-11-20 03:30:23
推荐回答(3个)
回答1:

交叉点。尊重你的算法,照葫芦画瓢。
四周元素求和,不重复计算四个角点。
程序如下:
#include
void fun1()
{
int a[4][4];
int i,j, s1=0,s2=0,sum;
printf("Please enter 4x4 matrix:\n");
for (j=0;j<4;j++) for(i=0;i<4;i++) scanf("%d",&a[j][i]);
for(i=0;i<4;i++) {
s1+=a[i][i];
s2+=a[i][3-i];
};
sum=s1+s2;
printf("1: %d\n",sum);
}

void fun2()
{
int a[5][5];
int i,j, s1=0,s2=0,sum;
printf("Please enter 5x5 matrix:\n");
for (j=0;j<5;j++) for(i=0;i<5;i++) scanf("%d",&a[j][i]);
for(i=0;i<5;i++) {
s1+=a[i][i];
s2+=a[i][4-i];
};
sum=s1+s2;
// sum = sum - a[2][2]; 交叉点 应当 扣掉 1 个
printf("%d\n",sum);
}

void fun3()
{
int a[4][4];
int i,j, s1=0,s2=0,sum=0;
printf("Please enter 4x4 matrix:\n");
for (j=0;j<4;j++) for(i=0;i<4;i++) scanf("%d",&a[j][i]);
for(i=0;i<4;i++) {
s1+=a[0][i];
s1+=a[3][i];
};
for(i=1;i<=2;i++) {
s2+=a[i][0];
s2+=a[i][3];
};

sum=s1+s2;
printf("%d\n",sum);
}

void main()
{
fun1();
fun2();
fun3();
exit(0);
}
========================
若要分3 个程序
你就改 main(), 1 个调 fun1();1 个调 fun2();
1 个调 fun3();

回答2:

#include
main()
{
int a[5][5],i,j,x,y;
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
scanf("%d",&a[i][j]);
}
x=a[0][0]+a[1][1]+a[2][2]+a[3][3]+a[4][4];
y=a[0][4]+a[1][3]+a[2][2]+a[3][1]+a[4][0];
printf("%d %d\n",x,y);
}

很简洁吧!

回答3:

#include
void main()
{
int i,j;
int temp,res1=0,res2=0;
for(i=0;i<5;i++){
for(j=0;j<5;j++){
scanf("%d",&temp);
if(i == j){
res1 += temp;
}
if((i + j) ==4){
res2 += temp;
}
}
}
printf("%d %d\n",res1,res2);
}