Dùng switch trong C

cho e hỏi dòng điều kiện if của e phải sửa như thế nào ạ e mới hk C mn chỉ giúp ạ

HI vu van thinh.
Bạn tìm tài liệu về biểu thức logic trong C để thao khảo.

1 Like

sai cú pháp

à ý e hỏi là k cần viết như vậy ý mà chỉ liệt kê ra số rồi xác định sự xuất hiện của nó trong biến ý
để cho code nó ngắn hơn ý
nếu như trong python thì
thang in [1, 2, 3, ...]
vậy trong c có làm nhanh đc vậy k ạ

có em
if (thang == (1||5|| 7||8|| 10 || 12))
printf(“thang %d co 31 ngay”,thang);

Dùng switch…case bạn. Hoặc là viết bảng tra ra luôn.

vâng ạ e cảm ơn c ^-^

switch case thì mình có biết nhưng còn bảng là sao nhỉ

làm gì có cái này
nó chỉ đúng khi tháng = 1 thôi
(1 || 5 || 7 || 8 || 10 || 12) là biểu thức logic, nó chắc chắn là TRUE, mà TRUE mặc định là 1
if (thang == (1||5|| 7||8|| 10 || 12)) tương đương if (thang == 1)

vậy phải viết như thế nào cho đúng vậy ạ

có bạn ở trên up hình rồi đó e
còn k nữa thì dùng switch case

cách của bạn thì e có biết a ạ chỉ là e muốn xem có cách nào code ngắn hơn thế nữa thôi ạ:joy:

Code thì đừng ham ngắn, dễ đọc nhưng phải chất, không lầy, không nhựa mới quý.

2 Likes

vâng e hiểu rồi ạ

cách này sẽ khá giống code python, với trường hợp đơn giản như thế này thì chỉ cần dùng if thôi, nhưng đây là 1 cách để tham khảo

int thang;
std::cout << "nhap thang: ";
std::cin >> thang;

std::vector cacThang31Ngay {1, 5, 7, 7, 8, 10, 12};
if (std::find(cacThang31Ngay.begin(), cacThang31Ngay.end(), thang) != cacThang31Ngay.end())
{
std::cout << “thang " << thang << " co 31 ngay\n”;
}
else if (thang == 2)
{
std::cout << “thang " << thang << " co 28 ngay\n”;
}
else
{
std::cout << “thang " << thang << " co 30 ngay\n”;
}

Kiểu này chắc thôi dùng hai bảng 1 bảng tháng 1 bảng số ngày là xong :smiley:

Muốn cách ngắn hơn nữa thì chơi cái mảng ntn :smile:

int daysOfMonth[] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
cin >> month;
cout << daysOfMonth[thang];
2 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?