c中的二维数组 我遇到了一个小错误,这把我搞砸了.. 你能发现任何错误吗,而我应该得到操作
1 2 3 4 5 6 7 8 9
但是我正在做
1 2 4 4 5 7 7 8 9
#include <stdio.h>
int main(int argc,char* argv[])
{
int m;
scanf("%d",&m);
int a[m][m],i,j;
for(i=0;i<=m;i++){
for(j=0;j<=m;j++){
scanf("%d",&(a[i][j]));
printf("%d",a[i][j]);
}
}
for(i=0;i<=m;i++){
for(j=0;j<=m;j++){
printf("%d",a[i][j]);
printf("\t");
}
printf("\n");
}
}
最佳答案
声明:
int a[m][m];
意味着你有一个带有 m
的数组行和 m
列,编号自 0
至m-1
。由于 <=m
,您正在尝试访问不属于您的数组的元素。条件。
将两个循环更改为:
for(i=0;i<=m;i++){
for(j=0;j<=m;j++){
scanf("%d",&(a[i][j]));
printf("%d",a[i][j]);
}
}
您现在拥有的:
for(i = 0; i < m; i++){
for(j = 0; j < m; j++){
scanf("%d",&(a[i][j]));
printf("%d",a[i][j]);
}
}
您可以阅读有关索引和数组的更多信息 here .
关于c - c 中的二维数组的输出方式不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42277057/