30/09/2018, 21:15
C++ Bài tập đơn giản nhưng không hiểu vì sao sai
#include <iostream>
using namespace std;
void main()
{
int a, b, c, max;
cout << "Nhap a ";
cin >> a;
cout << "Nhap b ";
cin >> b;
cout << "Nhap c ";
cin >> c;
max = a;
if (max < b) {
b = max;
}
if (max < c) {
c = max;
}
cout << max;
system("pause");
}
Đoạn code trên là phần code để giải bài tìm số lớn nhất trong 3 số. Nhưng không hiểu sao max lúc nào củng = a
Bài liên quan
Thay lại bằng đoạn này thử nhé:
Vì sao phải bỏ {} ạ
Em tưởng 1 câu lệnh củng nên bỏ trong cặp nhọn để dễ đọc code.
Cái đó không quan trọng vì trong
if
chỉ có 1 câu lệnh nên không cần{}
, khi nào trongif
có nhiều câu lệnh mới cần{}
P/S: Mà bạn sửa được chưa ?
Em đã thử và không đc ạ
Thế này đi. Bạn thay đổi thuật toán xíu.
Gán cho
max
= 0 rồi thực hiện đoạn code dưới đây thử:Em làm như anh thì max = 0 em chã hiểu luôn.
Em chạy trình debug thì max luôn có 1 kết quả duy nhất
Sao kì nhỉ ? Mình làm ok hết mà?
code đây nà bạn vậy mới đúng
Của em đây ạ
Nếu
a, b, c < 0
thì thuật toán saiUhm anh Nhưng em kêu bạn ấy chuyển qua thuật đó xem có lỗi như thuật trước không ấy mà
@Looi nhầm, bạn ghi lại là
max = a
nhaỒ em cảm ơn anh
Sai lỗi vớ vẫn quá.
Mà bạn nên nhớ thế này nha:
a = max
tức là gán giá trị max cho amax = a
tức là gán giá trị a cho maxa = max
vàmax = a
là 2 kiểu hoàn toàn khác nhauTổng quan là vế phải gán cho vế trái
max=a; hoặc bằng max = a; cũng như nhau thôi bạn
Thuật của bạn nếu cho a = 0 thì coi như sai
mình có nói j đâu mình chỉ nói max=a cũng giống max = a mà
Bạn gán
a = max và b = max
để làm gìbạn có chắc không?
mới sửa lại hả
chắc chứ bạn vì mình thử rồi