求一个5*5的整型矩阵的对角线的元素和及每列元素和

如题所述

#include<stdio.h>
int main()
{
int a[5][5],i,j,sum=0;
int b[5]={0};
printf("请输入数组元素:(5*5)\n");
for(i=0;i<5;i++)
for(j=0;j<5;j++)
scanf("%d",&a[i][j]);
printf("\n");
printf("数组为:\n");
for(i=0;i<5;i++)
{for(j=0;j<5;j++)
printf("%4d",a[i][j]);
printf("\n");
}
printf("\n");
printf("对角线的和:\n");
for(i=0;i<5;i++)
for(j=0;j<5;j++)
{
if(i==j||4-i==j)
sum+=a[i][j];
b[i]+=a[j][i];

}
printf("对角线之和 :%d\n",sum);
for(i=0;i<5;i++)
{
printf("%d ",b[i]);
}

}

温馨提示:内容为网友见解,仅供参考
第1个回答  2014-05-15
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
#define N 5
int main(void)
{
int a[N][N],i,j,sumd1,sumd2,sumc[N];
srand(time(NULL));
loop:
printf("\n二维数组:\n");
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
printf("%8d",a[i][j]=rand()%1000);
putchar('\n');
}
for(sumd1=sumd2=i=0;i<N;i++)
sumc[i]=0;
for(i=0;i<N;i++)
{
sumd1+=a[i][i];
sumd2+=a[i][N-i-1];
for(j=0;j<N;j++)
sumc[i]+=a[i][j];
}
printf("主对角线 %d\n副对角线 %d\n各列之和\n",sumd1,sumd2);
for(i=0;i<N;i++)
printf("%8d",sumc[i]);
printf("\n按空格键退出...");
if(getchar()!=32)
goto loop;
return 0;
}
相似回答