Hàm pow() chạy trên CodeBlocks bị sai kết quả


Em có chương trình đơn giản thế này ạ.
Em không biết là code của em sai hay lỗi code block nhưng em chạy đoạn này trên web thì kết quả là 125 ạ.

#include <iostream>
#include <math.h>
using namespace std;
void is(int *t)
{   *t=pow(*t,3);    }

int main()
{
    int t=5;
    is(&t);
    cout << t ;
}

Vấn đề muôn thuở: hàm pow() không tính toán chính xác hàm mũ số nguyên.

3 Likes

Bác ơi em đem dòng này chạy trên web chạy onl thì lại đúng.
Mà sửa pow(*t,3) thành pow(*t,3.0) chạy bằng code block thì vẫn là 124 . Bác bày em fixx với.

Bác ơi em đem dòng này chạy trên web chạy onl thì lại đúng.
Mà sửa pow(*t,3) thành pow(*t,3.0) chạy bằng code block thì vẫn là 124 . Bác bày em fixx với.

Có compiler ra đúng, có compiler ra sai. Kết quả không đúng trên mọi compiler được.

Muốn dùng hàm pow với số nguyên thì bạn phải tự viết thôi.

3 Likes

Em cảm ơn bác nhá <3

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?