这个程序不知道为什么会这样
int main(){
int code;
int i,a;
for(i=1;i<=5;i++)
{
printf("请输入第%d个数据: ",i);
scanf("%d",&code);
}
for(a=1;a<=5;a++)
{
printf("第%d个数据是:%d\n",a,code);
}
return 0;
}
然后就会这样,为什么明明已经输到第5个数据,然后又要你输入第四个数据,而且这个错误有时会出现,有时不出现。你们可以尝试在你们电脑输入数据是9,10,11,8,3试一下会不会出现我这种问题。帮忙了
gcc一切正常。
请输入第1个数据: 9
请输入第2个数据: 10
请输入第3个数据: 11
请输入第4个数据: 8
请输入第5个数据: 5
第1个数据是:9
第2个数据是:10
第3个数据是:11
第4个数据是:8
第5个数据是:5 好像数组越界了 无符号整形 发表于 2016-10-7 10:22
好像数组越界了
什么意思,求解 为什么会这样 qqQ1157875619 发表于 2016-10-7 12:11
为什么会这样
多说是数组越界咯 大小为5的数组下标范围只能 0 -4 for(a=0;a<5;a++)
{
printf("第%d个数据是:%d\n",a,code);
}
试一下这个 数组下标从0开始,赋值时和打印的for中,a和i的初值不应为1,要改为0 数组下标是从0开始的,但是你写的程序是从1开始的,5结束,但是正确的形式应该是a开始的,a结束的,所以你的数组中应该没有a这个元素的、 就是楼上说的,假如你定5个长的数组,但是在使用时应该是从0~4(code【0】code【1】code【2】code【3】code【4】),而不是1~5,
页:
[1]