我的这段C代码怎么输出不到正确答案?

来源:百度知道 编辑:UC知道 时间:2024/05/17 20:50:28
#include <stdio.h>

void main()
{
float x=2,y=1,sum=0;
int n;

for (n=1;n<=20;n++){
sum=sum+(x/y);
y=x;
x=x+y;
}
printf("%f",sum);
}

题目是:2/1+3/2+5/3...(前20项之和)

我的结果是40.0000000
正确应该是30多

为什么?我的程序出了什么问题?

void main()
{
float x=2,y=1,sum=0;
int n;

for (n=1;n<=20;n++){
sum=sum+(x/y);
int tempY = Y
y=x;
x=tempY+x;
}
printf("%f",sum);
}

#include <stdio.h>

void main()
{
float x=2,y=1,sum=0;
int n;
float temp;
for (n=1;n<=20;n++){
sum=sum+(x/y);
temp = y;
y=x;
x=x+temp;
}
printf("%f",sum);
}

y=x;
x=x+y; 这段错了。。y 上面已经改变了。x不对