一段简单的C语言代码问题

来源:百度知道 编辑:UC知道 时间:2024/06/28 03:43:51
#include<stdio.h>
void main()
{
int i;
int a[1000];
a[0]=0;a[1]=1;
for(i=2;a[i]<1000;i++)
a[i]=a[i-1]+a[i-2];
for(i=2;a[i]<1000;i++)
printf("%ld ",a[i]);
}

为什么程序第5行a[1000]不能改成a[100]?(改了以后出错)
改成500也不行啊

因为后面的for循环中用到了a[100]到a[999],而改成a[100]的话,就没有a[100]到a[999]这些数组成员了,所以就出错了

for循环中的a[i]应该变成i吧,这样能将1000改成100,这样只是输出数列的前一百个数 ,后面的两个1000也应该改成100

当a[i]刚大于1000时,i已经大于100啦,当然不可以改成一百了。