运行的时候小数点后面没有数字了

img

img


c语言研究半天研究不出来 是自动四舍五入了吗 真的找不出问题了 头痛

我看看:
①你对a和b赋值的时候最好是2.01.0,单单是21的话
是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);
}

运行结果截图:

img

循环内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类型