我看看:
①你对a和b赋值的时候最好是2.0,1.0,单单是2,1的话
是int类型,相当于类型转换了。
②你要明白,int/int,结果是整型int,例如3/2结果就是1,没有了小数部分,
同样,float/int,也是,结果会舍去小数部分,主要是看除数是那个类型,
结果就是那个类型,如果你想保留小数的,那就float/float或者int/float
#include <stdio.h>
void main ()
{
int n,i=0;
float s=0,a,b,c;//c变量作为临时存放值
a=2.0;
b=1.0;
printf("please input n=\n");
scanf("%d",&n);
while(i<n){
s=s+a/b;
c=a;
a=a+b;
b=c;
i++;
}
printf("S=%.2f\n",s);
}
运行结果截图:
循环内a,b赋值有问题
#include<stdio.h>
int main()
{
int n, i = 0;
float s = 0, a,b,t;
a = 2, b = 1;
printf("please input n=\n");
scanf("%d", &n);
while (i <= n) {
s = s + a/b;
t = a;
a = a + b;
b = t;
i++;
}
printf("s=%.1f\n", s);
}
int/int最后还是int类型