为什么结果不对呢?

来源:百度知道 编辑:UC知道 时间:2024/06/15 04:25:53
main()
{
int i,s;
int f[21]={1};
for(i=1;i<=20;i++)
{f[i]=f[i-1]+i;
printf(" %d",f[20]);
}
getch();
}
结果明明该210,怎么我输出为211?

当i=1时,f[i-1]=1;
你是想从1加到20吗?
i=1时,f[1]=f[0]+1=1+1=2;
很显然,按照你的想法,f[i]的值应该是i所以位置之前的所有数的和再加上i,比如:f[5]=1+2+3+4+5,那么i等于1的时候,应该是f[1]=0+1,所以,要把初值设成0才对,即:int f[21]={0}即f[0]=0而不能是1;另外, 请把printf放到循环外面.道理不说了.

..你给的程序答案就是211...

你想计算什么?

f[0]=1,多加了一个1,定义:int f[21]={0}

输出的结果没有错的!!
我运行也是这样的!!

你上面面写的程序最后结果是211
如果你把上面int f[21]={1}这一行的{1}改为{0},最后结果就是210了,是不是你写错数字了?