Cách dùng lệnh if ở đây sai chỗ nào

Mình có làm bài tập ở khóa học C++ cơ bản của bạn @nguyenchiemminhvu thì khi chạy thử thì mình cứ đoán số 0 ở trên console thì kết quả cho ra bị sai, code thì mình phân tích ra thấy đúng mà, ngồi cả tiếng đồng hồ ko nghĩ ra được giải pháp nào.

Bài tập đây:

Code:

#include <iostream>
#include <cstdlib>
#include <ctime>

using namespace std;

int main()	{
	
	srand(time(NULL));
	int value_in = rand() % 100 + 1;
	int value_out;	

	cout << "This is a software of random.org, plese guess the number (1 or 0)" << endl;
	cout << "Guess: ";
	cin >> value_out;

	if (value_out = 0 && value_in < 50)
	{
		cout << "Right! The random number is " << value_in << endl;
	}

	else if (value_out = 0 && value_in > 50)
	{
		cout << "Wrong, the random number is " << value_in << endl;
	}

	else if (value_out = 1 && value_in > 50)
	{
		cout << "Right! The random number is " << value_in << endl;
	}

	else if (value_out = 1 && value_in < 50)
	{
		cout << "Wrong, the random number is " << value_in << endl;
	}
	
	system("pause");
	return 0;
}
if (value_out == 0 ....
1 Like

Mình thử thấy tốt rồi. Thanks bạn :innocent:

Ủa trong python không có khái niệm này hả @Nguyen_Hieu2 sao để mỗi 1 dấu " = " vậy :smiley:

1 Like

Có đấy, mỗi tội quên thôi :smile:
À mà tại sao vẫn dùng dc “=” trong câu lệnh if nhỉ, tại vì ở Python dùng = ở lệnh if là bị lỗi invaid syntax ngay

python dùng strict rule để hạn chế những lỗi lặt vặt như này
lệnh gán trong python là 1 statement, không phải expression nên không thể đưa vào vị trí của expression (vd trong if hay for)
còn C/C++ lệnh gán vẫn là expression, và luôn trả về true

Mà hình như Python “cao” hơn C++ xíu nhề :smiley:

Ví dụ ?

#include <iostream>
using namespace std;

int main() {

	int n = 5;
	if(n = 0)
	{
		cout << "True?" << endl;
	}
	else
	{
		cout << "False!" << endl;
	}
	return 0;
}

Nó đơn giản là lấy cái giá trị được gán xong để đem đi so sánh thôi.

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