01/10/2018, 08:24

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 ạ

Tao Không Ngu. viết 10:35 ngày 01/10/2018

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

huyentrang viết 10:27 ngày 01/10/2018

sai cú pháp

vu van thinh viết 10:35 ngày 01/10/2018

à ý 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 ạ

huyentrang viết 10:28 ngày 01/10/2018

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

rogp10 viết 10:33 ngày 01/10/2018

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

vu van thinh viết 10:24 ngày 01/10/2018

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

vu van thinh viết 10:38 ngày 01/10/2018

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

Nguyễn Xuân Phúc viết 10:38 ngày 01/10/2018

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)

vu van thinh viết 10:35 ngày 01/10/2018

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

Nguyễn Xuân Phúc viết 10:28 ngày 01/10/2018

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

vu van thinh viết 10:33 ngày 01/10/2018

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:

rogp10 viết 10:34 ngày 01/10/2018

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ý.

vu van thinh viết 10:32 ngày 01/10/2018

vâng e hiểu rồi ạ

Nguyễn Quốc Thái viết 10:34 ngày 01/10/2018

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”;
}

rogp10 viết 10:39 ngày 01/10/2018

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

*grab popcorn* viết 10:31 ngày 01/10/2018

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

int daysOfMonth[] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
cin >> month;
cout << daysOfMonth[thang];
Bài liên quan
0