#include<iostream>
#include<math.h>
using namespace std;
int main()
{
int temp = 0, n = 1100, x = 0, t2 = 0, l = 10;
while(temp < n)
{
t2 = temp;
temp += pow(l, ++x);
cout << t2 << " " << temp << " " << x <<endl;
}
return(0);
}
获得的输出是:意外的输出
0 10 1
10 109 2
109 1109 3
但我希望输出:
0 10 1
10 110 2
110 1100 3
为什么这种差异..请帮助..我不能找出问题
您是否对空间过敏?可能不应该使用名为'l'的变量。看起来很像'1'。 –
不知道你使用的是什么工具链,我只能用''和clang 3.3来获得预期的输出结果。 –
WhozCraig
你的程序在我的系统中给出正确的输出! pow函数的这个未定义的行为已经被观察了很多次! –