Chương trình xuất số ngày của tháng

cho em hoi sai o dau vay a

#include<iostream>
using namespace std;
int main()
{
int Thang;
cout<<"Ban muon xem so ngay cua thang nao";
cin>>Thang;
switch(Thang)
{
case 1:case 3: case 5: case 7: case 8: case 10: case 12: cout<<"Thang Nay co 31 ngay/end1 ";
case 4: case 6: case 9: case 11: cout<<"Thang nay co 30 ngay/end1";
case 2: goto lab;
default: cout<<"Thang ban nhap khong ton tai";
lab:
	int nam;
	cout<<" Ban muon xem thang 2 cua nam nao";
	cin>>nam;
	If (nam%4==0) cout<<"Thang Nay co 29 ngay";
	else cout<<"Thang nay co 28 ngay";	
}
}

Sai chỗ If nhe bác, chữ if viết thường không có viết hoa :sunny:

2 Likes

:joy::joy: muon dap ban phim qua, cam on nha

Mình tưởng năm nhuận là chia hết cho 4 nhưng không chia hết cho 100 chứ :stuck_out_tongue:

1 Like

điêu kiện cho có thôi :wink:

Code của bạn sai về mặt logic, cho dù bạn nhập tháng nào đi chăng nữa nó cũng in hết ra 30/31 hay 28 ngày.
Bạn tìm hiểu lại lệnh switch đi.

2 Likes

Vâng,em cũng đang không biêt phải làm sao,sẽ cố gắng từ từ vậy ạ

Bác thêm dòng break vào cuối mỗi case là được nhé :smiley:
#include

using namespace std;

int main()
{
int Thang;
cout<<"Ban muon xem so ngay cua thang nao: ";
cin>>Thang;
switch(Thang)
{
case 1:case 3: case 5: case 7: case 8: case 10: case 12:
cout<<"Thang Nay co 31 ngay";
break;
case 4: case 6: case 9: case 11: cout<<"Thang nay co 30 ngay";
break;
case 2: goto lab;
break;
default: cout<<"Thang ban nhap khong ton tai";
break;
lab:
	int nam;
	cout<<" Ban muon xem thang 2 cua nam nao";
	cin>>nam;
	if (nam%4==0) cout<<"Thang Nay co 29 ngay";
	else cout<<"Thang nay co 28 ngay";
}
}

Tham khảo thêm: http://stackoverflow.com/questions/4494170/grouping-switch-statement-cases-together
p/s; cảm ơn bác , nhờ bài này em mới biết cách kết hợp nhiều case với nhau :smiley:

2 Likes

Nếu ko nhập tháng 2 thì nhãn LAB vẫn dc thực thi và xuất ra “Ban muon xem thang 2 cua nam naò” :grin:

Đâu có đâu bác :v:

1 Like

việc dùng lệnh ngảy cóc kiểu này: case 2: goto lab; không nên xài. Thực tế có khí còn bị cấm dùng, vì code thiếu tường mình và gây rối người đọc code
Nói về tổng thế code bạn thì đây là cách cơ bản đối với bài này. Ngoài ra còn cách khác

#include<iostream>
using namespace std;
int main()
{
    int thang;
    int nam;
    int ngayNamThuong[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
    int ngayNamNhuan[] = {31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
    cout << "Nhap nam: ";
    cin >> nam;
    cout << "Nhap thang: ";
    cin >> thang;
    if(nam < 1 && thang > 12 && thang < 1) {
        cout << "Nam thang khong hop le";
    } else if( (nam%4 == 0 && nam%100 != 0) || nam%400 == 0) {
        count << "Thang nay co " << ngayNamNhuan[thang-1] << " ngay";
    } else {
        count << "Thang nay co " << ngayNamThuong[thang-1] << " ngay"
    }
}
3 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?