01/10/2018, 10:57

Vấn đề về mảng hai chiều

#include <iostream>

using namespace std;

int main()
{
	int a[40][40];
	//Tao mang 2 chieu voi tat ca phan tu = 0
	for (int i = 0; i < 40; i++)
        {
            for (int j = 0; j < 40; j++)
                {
                    a[i][j] = 0;
                }
        }
	if (a[0][0] == a[0][1] == a[0][2]) cout<<"yes"; else cout<<"no"; //here
    return 0;
}

Đoạn code trên em tạo một mảng hai chiều với tất cả phần tử bằng 0, tại sao khi so sánh 3 phần tử đầu tiên lại xuất ra màn hình “no” (em đã thử so sánh phần tử 1 với 2, 2 với 3; 1 với 3 đều cho kết quả “yes”)
Ai có cao kiến không ạ ?
Đoạn code sau đây cũng cho kết quả “yes” luôn ạ :

if (1 == 1 == 1) cout<<"yes"; else cout<<"no";
Henry viết 12:57 ngày 01/10/2018

Bằng 0 hết rồi. Chẳng qua khi bạn so sánh nó như vậy này.

0 == 0 == 0
(0 == 0) == 0
(1) == 0 /* vì 0 == 0 True */
1 == 0
False
Còn khi là
1 == 1 == 1
(1 == 1) == 1
(1) == 1
True

Ez problem :3

Khang Nguyễn viết 13:01 ngày 01/10/2018

sao em thử đúng ngay số 1 nhỉ, làm hiểu sai luôn

Henry viết 13:03 ngày 01/10/2018

Rút kinh nghiệm. Phải đặt nhiều test cases vào. Trên codefights mà chơi, nhiều khi chả biết mình sai cái test case nào luôn ấy

Bài liên quan
0