有人可以解释一下为啥pow在这种情况(只有以下的情况,转int不会,试了俩编译器)下调用多次会成这样吗,调试题目的时候发现的。
#include
#include
int main(void)
{
int n=5;
long long int a=(long long int)pow((double)10,((double)n))-1;
long long int b=(long long int)pow((double)10,((double)n))-1;//直接复制的上一行,改了一个a,,,
printf("a=%d,b=%d",a,b);
}
printf("a=%lld,b=%lld",a,b);
我这边用MinGw-W64调试两个都是99999。你用的什么编译器。按道理不应该这样。