Ошибка кода !?Почему есть два разных ответа? - PullRequest
0 голосов
/ 25 ноября 2018

Я запустил довольно простую программу на моем компьютере, но она дает мне неправильный ответ.Когда я скопировал код в онлайн-среду, ответ был правильным.Я использую CodeBlocks.В чем проблема .?

Онлайн IDE ссылка: https://ideone.com/yKV5NV

Это изображение результата на моем ПК:

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 голосов
/ 25 ноября 2018

Я думаю, что это может быть из-за представления числа с плавающей запятой, которое не может содержать "точное" значение, которое вы ожидаете.Это происходит каждый раз из-за одних и тех же входных данных, так почему бы и нет?Относительно того, как это исправить, на самом деле нечего исправлять, это просто способ работы чисел с плавающей запятой.

...