新手 求帮助 感激不尽
一个二维数组赋值 不知道怎么错了 语法没问题 高手帮忙看看 感激不尽
#include<stdio.h>
main()
{
int a[10][10];
int i=1,j=1,c,m;
for(i=1;i<=10;i++)
for(j=1;j<=10;j++)
{
a[i][j]=i*j;
}
puts(a);
}
[解决办法]
下标是从0开始的
for(i=1;i<=10;i++)
for(j=1;j<=10;j++)
修改为
for(i=0;i<10;i++)
for(j=0;j<10;j++)
[解决办法]
越界了, 下标从0开始的 不是1
i<10
j<10
不能==10
[解决办法]
C语言的数组下标是从0开始的。如果定义int a[10],那么下表是从1到9为止。如果你访问a[10]的话就出错了。打印整形变量的数组不能用puts来。puts是输出字符数组的。
- C/C++ code
int main(){ int a[10][10]; int i=1,j=1,c,m; for(i=0;i<10;i++) for(j=0;j<10;j++) { a[i][j]=i*j; } for(i=0;i<10;i++) { for(j=0;j<10;j++) { printf("%5d ",a[i][j]); } printf("\n"); } return 0;}
[解决办法]
LS都说了,你的下标越界了,应是从0至9。