读书人

新手 求帮助 感激不尽解决方法

发布时间: 2012-05-12 15:39:31 作者: rapoo

新手 求帮助 感激不尽
一个二维数组赋值 不知道怎么错了 语法没问题 高手帮忙看看 感激不尽
#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。

读书人网 >C语言

热点推荐