C语言问题,高手请进!

来源:百度知道 编辑:UC知道 时间:2024/05/07 23:31:48
#include<stdio.h>
void main()
{
int i,j,sum;
int a[3][3];
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++)
sum+=a[i][i];
}
printf("%d",a[i][j]);
}
scanf("%d",a[i][j]);按说输数组,不需要取地址!但是为什么我不取地址的时候,此求三元数组对角线的和的程序就运行不到正确结果呢?而且在输入界面时候,我只要按一个逗号,马上就推出运行界面!

scanf("%d",a[i][j]);我没有听过这不需要取地址,
a[i][j]);并不是地址,如果要改为地址应改为&a[i][j]

scanf("%d",&a[i][j]);
注意二维数组名才是地址,数组元素不代表地址,要代表地址,可以改为上面的,也可以用指针表示:*(*(a+i)+j)这才是地址