pow() 函数给出了非常奇怪的输出。
我尝试了各种组合:
#include<stdio.h>
#include<math.h>
int main()
{
int d=1;
long long n1,n2;
while(d<10)
{
n1=pow(10,d);
n2=pow(10,d);
d++;
printf("%lld %lld\n",n1,n2);
}
}
这给出了错误的输出,即 99 而不是 100 等等。
现在如果我删除其中一个变量,ans。是正确的。如果我使用常数而不是 d,则 ans 是正确的。如果我将 n1 和 n2 作为双倍,则 ans 是正确的。
因此,拥有两个 pow() 函数,它们都将变量作为幂和类型转换为整数,这会产生糟糕的输出。为什么会出现这种奇怪的行为?