大家看看这个程序怎么不行?

来源:百度知道 编辑:UC知道 时间:2024/06/11 21:05:55
#include "stdio.h"
void main()
{
int i,a[10];
for(i=0;i<10;i++)
{ scanf("%d",&a[i]);
if(a[i]==13) break;
}
for(;i>=0;i--)
printf("%d ",a[i]);
printf("\n");
}
应该没有越界,第一个for循环的i++,应该在break后,既然已经跳出循环了,i++也就不起作用了。

#include "stdio.h"
void main()
{
int i,a[10];
for(i=0;i<10;i++)
{ scanf("%d",&a[i]);
if(a[i]==13) break;
}
for(i--;i>=0;i--) //在上个for循环退出的时候i=10;用在这个for循环里面会越界,所以要减去1
printf("%d ",a[i]);
printf("\n");
}

这个程序在Tc里可以运行
如果你使用的是新版的编译器

void main()是不被允许的
main()函数必须有一个返回值

楼主想干什么,如果输入13的话,要不要打13呢?还是只打印13以前输入的数?

第二个for里i最好有个初值

for(;i>=0;i--) 这样你都敢往上发,你至少仔细看看代码吧

越界了