C语言程序设计中遇到的问题

来源:百度知道 编辑:UC知道 时间:2024/05/13 09:47:34
题目要求:求分数序列
2/1,3/2,5/3,8/5,13/8,21/13……
前二十项的和。
我编写程序如下:
main()
{float sum,x;
int i,j,m,k;
for(sum=0,i=1,j=1,m=2,k=1;k<=20;k++)
x=m/i;i=m;m=m+j;j=i;sum=sum+x;
printf("sum=%f\n",sum);
}
但是运行结果为:2.000000

main()
{float sum,x;
int i,j,m,k;
for(sum=0,i=1,j=1,m=2,k=1;k<=20;k++)
{x=m/i;i=m;m=m+j;j=i;sum=sum+x; }
printf("sum=%f\n",sum);
}
这样就行了!

for(sum=0,i=1,j=1,m=2,k=1;k<=20;k++)
{
x=m/i;i=m;m=m+j;j=i;sum=sum+x;
}

for循环要加扩号,要不然sum的值就是循环结束后的值了