C语言问题 二维数组输入

为何我输入的是1-9 ,输出的数组却是图上的这个

*****scanf("&d", &a[n][m]);此语句有误,应为scanf("%d",&a[n][m]);而错误语句致使输入的数据没有被存入数组中,所以读出的数与预订不服和

#include<stdio.h>

#define N 3

void main(){

int n,m;

int s;

int a[N][N];

printf("请输入方振:\n");

for(n=0;n<N;n++)

for(m=0;m<N;m++)

scanf("%d",&a[n][m]);


for(n=0;n<N;n++){

for(m=0;m<N ;m++)

printf("%d ",a[n][m]);

printf("\n");

}

s=0;

for(n=0,m=0;n<N&&m<N;n++,m++)

s+=a[n][m];

printf("%d\n",s);

s=0;

for(n=0,m=N-1;n<N&&m>=0;n++,m--)

s+=a[n][m];

printf("%d",s);

}

输出结果:

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-05-24

#include<stdio.h>

#define N 3

void main(){

int n,m;

int s;

int a[N][N];

for(n=0;n<N;n++){

for(m=0;m<N;m++){

scanf("%d",&a[n][m]);

}

}

for(n=0;n<N;n++){

for(m=0;m<N;m++){

printf("%d ",a[n][m]);

}

printf("\n");

}

}

没问题呀!!!不知道怎么回事,注释掉然后测试一下上面代码有错没得嘛

第2个回答  2013-05-24
scanf("%d", &a[n][m]);
第3个回答  2013-05-24
scanf("%d",&a[n][m]),是%d的,你写错了
第4个回答  2013-05-24
scanf("%d", &a[n][m]);而不是&d