我只是写一个程序来计算整数的幂。但是产量却不及预期。它适用于所有整数,除了5的幂]。 我的代码是:
#include <stdio.h> #include <math.h> int main(void) { int a,b; printf("Enter the number."); scanf("\n%d",&a); b=pow(a,2); printf("\n%d",b); }
输出是这样的:
"Enter the number. 2 4 "Enter the number. 5 24 "Enter the number. 4 16 "Enter the number. 10 99
我们不能将
pow()
函数用于int数据类型吗?
我只是写一个程序来计算整数的幂。但是产量却不及预期。它适用于除5的幂以外的所有整数。我的代码是:#include <...>
浮点精度在这里发挥作用。 pow
的实际工作是使用log
pow(a, 2) ==> exp(log(a) * 2)
没有基于int的战俘。您正在遭受的是浮点截断。
printf("%a", pow(10, 2))
,看看你会得到什么;我希望您会看到您没有quit
C库函数double pow(double x,double y)