遇到一个值得记录的问题,看程序
#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;
#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;