C语言问题:分别计算5*5矩阵的两条对角线元素之和,请进~

2024-12-01 20:34:51
推荐回答(3个)
回答1:

#include
#include
#include
#include

int getNum()
{
int k;
k=rand()%20+1;
return k;
}

void main()
{
int a[5][5]={0};
int i=0,j=0;
int num1=0,num2=0;

srand((unsigned)time(NULL));

for(i=0;i<5;i++)
for(j=0;j<5;j++)
a[i][j]=getNum();

for(i=0;i<5;i++)
{
num1+=a[i][i];
num2+=a[i][4-i];
}

printf("\n生成的数组为:\n");

for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
printf("%2d ",a[i][j]);
printf("\n");
}

printf("\n对角线的和为:\n");
printf("%d,%d",num1,num2);

getch();
}

回答2:

#include
void main()
{
int a[5][5],,i,j,sum=0,;
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
a[i][j]=rand()*(20-1)+1;
}
}
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
if(i==j||j==n-1-i)
sum+=a[i][j];
}
printf("sum = %d\n",sum);
}

没学过随机函数,临时看了下,不知道对不对..

补充:

如果不是两个对角线的和
就把
if(i==j||j==n-1-i)
sum+=a[i][j];
改为
{
if(i==j)
sum1+=a[i][j];
if(j==n-1-i)
sum2+=a[i][j];
}
并在赋值上 int a[5][5],,i,j,sum=0;
改为int a[5][5],,i,j,sum1=0,sum2=0;

回答3:

for(i=0;i<5;i++)
{
num1+=a[i][i];
num2+=a[i][4-i];

楼上的,经典:R
核心代码