C++ Bài tập đơn giản nhưng không hiểu vì sao sai

chắc chứ bạn vì mình thử rồi

:smiley: :smiley: bạn nên thử lại :smiley: :smiley:

#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; // chỗ này phải gán max = b
	}
	if (max < c) {
		c = max;// chỗ này nữa max = c mới đúng 
	}

	cout << max;
	system("pause");
}

Cố nội.
Max=b và max=c chứ không phải b=max,c=max.

Vãi anh :smiley:

P/S: Mà bạn chủ Topic đã sửa được lỗi rồi, sao mấy ACE @Duong_Act @KhoaTran còn “phạt” bạn ấy chỉ nhể :v

Theo thông tin chim lợn thì chưa giải quyết được mặc dù nhiều bạn đã chỉ nhưng vẫn chưa sửa. Nên bồi thêm cho phát nữa :smile:

2 Likes

bác dùng thử này xem sao:
if (max=a>b?a:b)
return (a);
else
return (max=b>c?b:c);

1 Like
max = a;
if (max < b) {
	max = b;
}
if (max < c) {
	max = c;
}

cout << max;

Nhầm code rồi bạn ơi.

if (max < b) {
b = max;
}
if (max < c) {
c = max;
}
Đoạn này max phải gán bằng giá trị của b hoặc c chứ không phải gán b hoặc c bằng giá trị max.

không phải bỏ ngoặc, bỏ ngoặc hay để ngoặc là phong cách của ng code thôi, vì sau if chỉ có 1 câu lệnh nên bỏ ngoặc nhìn sạch đẹp hơn, còn bạn trên sửa lại thứ tự là max= b chứ ko phải b= max như bạn code vì trong lập trình, “=” là lệnh gán chứ không phải so sánh nên nó không có tính hoán vị. max= b là gán giá trị của b cho biến max, b= max thì ngược lại, gán giá trị của max cho b. vì bạn để max= a từ đầu nên các lệnh sau nó gán giá trị đó cho b, cho c nên dù in ra cái gì cũng ra giá trị ban đầu của max= a.

có cái bài cơ bản mà các bác tranh cãi ghê thế, đổi lại max=b với vs max=c là xong rồi :joy:

bạn viết sai thuật toán rồi
sửa lại thành thế này nhé
max = a;
if (max < b) {
max=b;
}
if (max < c) {
max=c;
}

không giống nhau đâu bạn hoàn toàn khác nhé

#include <iostream>
using namespace std;

int max_3_digits(int a, int b, int c); 

int main()
{
    int a, b, c, max;

    cout << "Nhap a: ";
    cin >> a;
    cout << "Nhap b: ";
    cin >> b;
    cout << "Nhap c: ";
    cin >> c;

    max = max_3_digits(a, b, c);
    	
    cout << "Max = " << max;
    
    return 0;
}

int max_3_digits(int a, int b, int c)
{
    int max = a;
    return (max < b) ? ((b < c) ? c : b) : ((max < c) ? c : max);
}

if (max < b) {
b = max;
}
if (max < c) {
c = max;
}
chỗ này là
max=b
max =c
nếu b=max <=> b=max=a
c=max <=> c=max=b=a
cout<< max <=> cout << a;

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