有两个错误,修改如下
#include<stdio.h>
int main()
{
int i = 1, j = 2, n = 1,temp;
float sum = 0, sn;
while (n<=20)
{
sn = 1.0*i / j; //答案为0错在这里!!! 因为i和j都是整数,结果也是整数的,只需在表达式中*1.0将之变成浮点数的表达式即可得到小数
sum = sum + sn;
temp = i; //将原来的i赋给temp,否则执行i=j后i的值被赋予了j的值
i = j;
j = temp + j;
n++;
}
printf("%f", sum);
return 0;
}
注意 c语言中有类型之分,两个int类型的值相处,除不尽永远为0,你可以定义成float,或者对int类型做转换: