c语言关于pow函数的一个问题

2024-11-23 22:29:17
推荐回答(2个)
回答1:

pow 函数是 double 型。是否你的编译器引入了误差。你只是处理4位数,你可以自己写 my_pow(int x):
int my_pow(int x){
int i,v=1;
if (x==0)return 1;
for (i=1;i<=x;i++) v=v*10;
return v;
}
-------------
调用:
int guess,i,temp,p;
scanf("%d",&guess);
for (i=3;i>=0;i--){
temp=guess/my_pow(i);
p =temp*my_pow(i);
guess = guess-p;
}
不会引入误差。

回答2:

我在想 你为什么要算p呢 直接让guess %= pow(10,i)