代码错误!?为什么会有两个不同的答案?

时间:2018-11-25 09:48:19

标签: codeblocks pow

我已经在我的电脑中运行了一个非常简单的程序,但这给了我错误的答案。当我将代码复制到在线IDE时,答案是正确的。我正在使用CodeBlocks。问题出在哪里??

在线IDE链接:https://ideone.com/yKV5NV

这是我的PC中结果的图像:

Image of the Result in my pc

我的代码:

#include<stdio.h>
#include<string.h>
#include<math.h>

int main(){
    int x=5,k=2,ans;
    ans=(pow(x,k+1));
    printf("%d",ans);

    return 0;
}

PS:我认为可能是因为双数据类型舍入错误。但是为什么它每次都会发生。如果我是对的,该如何解决?

1 个答案:

答案 0 :(得分:0)

我认为这可能是因为浮点数表示无法容纳您期望的“精确”值。由于相同的输入数据,每次都会发生这种情况,那为什么不呢?关于修复方法,实际上没有什么要修复的,这只是浮点数的工作方式。