c语言 输入一个5行5列的矩阵,计算该矩阵最外圈元素之和。我这样做哪里错了

2024-11-29 23:52:12
推荐回答(3个)
回答1:

三个错误:①没有对数组进行赋初值;②C语言中,判断是否等于应该写“==”,“=”是赋值符号,这是新手最容易犯的错误之一;③在相加时,二维矩阵四个角上的元素都多加了一次,所以要减掉。

#include 
int main()
{
int a[5][5];
int i,j,sum=0;
printf("请输入5X5矩阵:\n");
//对二维数组赋初值
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
scanf("%d",&a[i][j]);
}
}
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
if(i==0)
sum=sum+a[i][j];
if(j==0)
sum=sum+a[i][j];
if(i==4)
sum=sum+a[i][j];
if(j==4)
sum=sum+a[i][j];
}
}
//四个角的元素都多算了一次,所以要减掉
sum=sum-a[0][0]-a[0][4]-a[4][0]-a[4][4];
printf("外圈之和为:%d\n",sum);
}

回答2:

四角加重复了,
if(i=0||j=0||i=4||j=4)
sum+=a[i][j];

回答3:

逻辑有错!如果i==j,如对[0][0]、[4][4]不就加了两次?