新手学习C语言,请大神解答

#include<stdio.h>
void main()
{
int i;
int a[20]={1,1};
for (i=2;i<=20;i++)
{
a[i]=a[i-1]+a[i-2];
}
printf("%d",a[i]);
}
调试不出来,为什么?
<=20改成<20
你的数组访问越界了
打印放循环里面衫宏

for (i=2;i<=20;i++)
{
a[i]=a[i-1]+a[i-2];
printf("%d",a[i]);//丛塌隐这里放循环里渗厅面
}
数组下标从0开始 数组a[20] 的最大下标为19 所以for循环的判断条件不缓判姿能等于20 否则就会发生越界错误 如果我扰绝没猜错的话 你要求这个数列中的前20个 1 1 2 3 5 8...
#include <冲灶stdio.h>
int main() {
int a[20] = {0};
a[0] = 1,a[1] = 1;
printf("%d\n%d\n",a[0],a[1]);
for (int i = 2; i < 20; i++) {
a[i] = a[i-1] + a[i-2];
printf("%d\n",a[i]);

}
return 0;
}
不知道你的目的是什樱悄么,要是想把a[20]输出出搏斗来这样肯脊银渣定不能在循环外面放printf("%d",a[i])
数组越界
数组越界
数组越界
不好意思哦。
这个俺不是很懂咯