求三*3矩阵对角线元素和
求3*3矩阵对角线元素和
#include <stdio.h>
int main()
{
int i,j,a[3][3],s=0;
printf("请输入任意9个数字: ");
for(i=0;i<3;i++)
{for(j=0;j<3;j++)
scanf("%d",a[i][j]);
}
for(i=0;i<3;i++)
{ for(j=0;j<3;j++)
if(i==j)
{ //printf("%d%d",i,j);
s+=a[i][j]+a[i][2-j];}
}
printf("%d\n",s);
return 0;
}
求教大神,为什么我一点运行程序,然后程序就显示“已停止工作”????
------解决方案--------------------
------解决方案--------------------
scanf没有取地址
------解决方案--------------------
printf里面的%和变量的一一对应关系
scanf里面的%和变量以及变量前加不加&的一一对应关系
是C代码中非常容易出错的地方,而且通常编译还不出错。
所以在编译源代码之前值得专门仔细检查一遍甚至多遍。
在每个最后不带\n的printf后面加fflush(stdout);
在每个不想受接收缓冲区旧内容影响的scanf前面加rewind(stdin);
另外请检查scanf的返回值。
#include <stdio.h>
int main()
{
int i,j,a[3][3],s=0;
printf("请输入任意9个数字: ");
for(i=0;i<3;i++)
{for(j=0;j<3;j++)
scanf("%d",a[i][j]);
}
for(i=0;i<3;i++)
{ for(j=0;j<3;j++)
if(i==j)
{ //printf("%d%d",i,j);
s+=a[i][j]+a[i][2-j];}
}
printf("%d\n",s);
return 0;
}
求教大神,为什么我一点运行程序,然后程序就显示“已停止工作”????
------解决方案--------------------
#include <stdio.h>
int main()
{
int i, j, a[3][3], s = 0;
printf("请输入任意9个数字: ");
for (i = 0; i<3; i++)
{
for (j = 0; j<3; j++)
scanf("%d", &a[i][j]); //scanf("%d", a[i][j]);
}
for (i = 0; i<3; i++)
{
for (j = 0; j<3; j++)
if (i == j)
{ //printf("%d%d",i,j);
s += a[i][j] + a[i][2 - j];
}
}
printf("%d\n", s);
return 0;
}
------解决方案--------------------
scanf没有取地址
scanf("%d",&a[i][j]);
------解决方案--------------------
printf里面的%和变量的一一对应关系
scanf里面的%和变量以及变量前加不加&的一一对应关系
是C代码中非常容易出错的地方,而且通常编译还不出错。
所以在编译源代码之前值得专门仔细检查一遍甚至多遍。
在每个最后不带\n的printf后面加fflush(stdout);
在每个不想受接收缓冲区旧内容影响的scanf前面加rewind(stdin);
另外请检查scanf的返回值。