for(i=2;i<20;i++)循环的结束条件是i>=20,因此,循环结束后i=20而不是19,因此20%5==0成立输出一个空行(\n代表换行)。接下来程序试图输出f[i],其中i=20,而f数组总共只有20个元素,最大只能为f[19],明显,f[20]越界,所以输出的是一个未知的数字(具体视操作系统而定)。
这题印错了一处,就是for语句下面第2行开头的大括号应该移到for下第一行开头。即;
for(i=2; i<20; i++)
{ f[i]=f[i-1]+f[i-2];
if(i%5==0)
printf("\n"); 这里是说逢i为5,10,15打印一个换行符,这样结果就是5个一行排好的
printf("%5d",f[i]); 这里把循环里每次算出的数列成员打印出来,这里%5d后应加空格,否则数列结果都连在一起
}
花括号不成对!