C语言新手 第三问
问题:求一个 3*#矩阵对角线元素之和.我的编程:
#include <stdio.h>
void main()
{
int sum,a[2][2],i,j,sum1,sum2,sum3,sum4,sum5;
printf ("请输入一个数组:");
for (i=0;i<3;i++)
{
for (j=0;j<3;j++)
{
scanf ("%d",&a[i][j]);
}
}
sum1=a[0][0];
sum2=a[0][2];
sum3=a[1][1];
sum4=a[2][0];
sum5=a[2][2];
sum=sum1+sum2+sum3+sum4+sum5;
printf ("\n3*3矩阵对角线元素之和为%d\n",sum);
}
问题:
我用 1,1,1,1,1,1,1,1,1 验证结果没问题
用1,2,3,4,5,6,7,8,9 验证结果比预想的多1
用9,8,7,6,5,4,3,2,1 验证结果比预想的少1
请各位高手帮忙指正错误
搜索更多相关的解决方案:
C语言
----------------解决方案--------------------------------------------------------
#include <stdio.h>
int main(void) /*void main是不正确的,具体参见其它资料*/
{
int sum,a[3][3],i,j,sum1,sum2,sum3,sum4,sum5; /*数组a[2][2]只有2*2个元素,所以改为a[3][3]*/
printf ("请输入一个数组:");
for (i=0;i<3;i++)
{
for (j=0;j<3;j++)
{
scanf ("%d",&a[i][j]);
}
}
sum1=a[0][0];
sum2=a[0][2];
sum3=a[1][1];
sum4=a[2][0];
sum5=a[2][2];
sum=sum1+sum2+sum3+sum4+sum5;
printf ("\n3*3矩阵对角线元素之和为%d\n",sum);
getch(); /*观看结果*/
return 0;/*最好加上*/
}
----------------解决方案--------------------------------------------------------