C语言笔记-float值消失

来源:互联网 发布:java super初始化 编辑:程序博客网 时间:2024/05/21 06:49
遇到一个值得记录的问题,看程序

#include<stdio.h>
void main()
{    
    float q=0;
    int a,b,d,n;
    
    printf("please input a,b:\n");
    scanf("%d%d",&a,&b);
    printf("%d,%d\n",a,b);
    for(n=1;n<=20;n++)
    {
       q+=a/b;//问题出在这里
       d=a;
       a=b;
       b=a+d;
       printf("%f\n",q);
    }
}
由于a,b均是int类型,所以小数点后面的被舍弃了,导致float q输出和预期不一样,强制转换一下就行了q+=(float)a/b;