double 和 int转换的问题,和打印时%lf和%d出现的问题,求解!
程序如下#include<stdio.h>
#include<math.h>
//各位数字的立方和等于它本身的数
void f(int x)
{int a,b,y=0;
a=x;
do{b=x%10;
y=y+(int)pow(b,3);
x=x/10;
}while(x>0);
if(y==a)
printf("%lf ",y);
return;
}
//主函数
int main()
{int i,m,n,y;
printf("enter m n:");
scanf("%d%d",&m,&n);
for(i=m;i<=n;i++)
f(i);
return 0;
}
[b]//将lf换成d时输出的结果正确,但是把int转换去掉,用lf输出为什么打印的都是0.0000000,pow不是double类型么,这个运算过程是什么?
如果精度问题?那也不至于全部为0.000
[ 本帖最后由 秦时的明月夜 于 2013-4-24 23:07 编辑 ]