Code chuyển cơ số trong c++ cho 2 kết quả khác nhau khi chạy trên Dev-C++ và Powershell

một đoạn code 2 số phận ạ

Bên trái là comiler bằng devc++ bên phải là compiler bằng powershell nhưng lại cho ra 2 kết quả khác nhau bên powershell a kq lại sai

Đây là code của chương trình
Cao nhân cho e hỏi là do đâu mà nó lại ra 2 kết quả khác nhau vậy ạ

Bạn cần gì cin >> n trong main trong khi void ChuyenCoSo có nạp vào tham số n riêng và đọc giá trị cho biến n đó?

Với lại, mỗi lần edit lại code, hãy compile và run lại với command g++ file.cpp -o file.exe && file.exe.

mình đã thử compiler lại nhưng kết quả vẫn vậy trong khi đó dev vẫn luôn đúng k hiểu sao

Theo điều kiện ở dòng 11 và dòng 14, bạn thiếu trường hợp sodu == 10.

Góp ý: Nếu câu lệnh if của bạn chỉ có dạng

nếu ok đúng thì làm 1, nếu ok sai thì làm 2

thì bạn chỉ cần viết

if (ok) {
    // làm 1
} else {
    // làm 2
}

để dễ debug hơn.

Như trong code của bạn, chỉ cần sửa thành

if (sodu < 10)
    s[temp] = '0' + sodu;
else
    s[temp] = 'A' + (sodu - 10);

mình cảm ơn bạn nhưng cho dù là vậy lỗi sai khi compiler bằng powershell là gì code mình đúng là còn thiếu sót nhưng mình nghĩ k vì thế mà nó lại cho ra kết quả khác khi chạy bằng dev c++. Mình đang muốn tìm hiểu nguyên nhân đó

Do code bạn sai thôi.

ĐỪNG BAO GIỜ NGHĨ THẾ.

1 Like

chỉ mình với


như thế này đã ổn chưa bạn

Ổn hay không thì bạn chạy khắc biết. Sau này bạn làm project lớn > 1000 dòng thì ai đọc từng dòng code bằng mắt hộ bạn được.

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