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
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的值就是循环结束后的值了