在做我的作业时,我注意到了一些非常奇怪的事情,但我却无法弄清楚为什么。
int x = 5;
cout << pow(x, 2);
结果是25。这很好。但如果我按照以下方式编写同样的程序:
int x = 5;
int y = pow(x, 2);
cout << y;
结果是24!
当x为2、3、4、6、7、8时没有问题,但当x为5、10、11、13等时,结果比应该的少1。
if()也是同样的情况。
for (int x = 1; x <= 20 ; x++) {
if (x * x == pow(x, 2))
cout << x << endl;
}
它输出了数字 1、2、3、4、6、8、12、16。