[C++]viết chương trình nhập vào tháng, năm cho biết tháng đó có bao nhiêu ngày

Lệnh cấu trúc điều khiển & rẽ nhánh switch...case hoàn toàn có thể thay thế cấu trúc if...else. Việc thay thế này giúp code chúng ta dễ hiểu và thuận tiện hơn. Sau đây hãy cùng TTnguyen luyện tập cấu trúc switch…case qua bài toán viết chương trình nhập vào tháng, năm cho biết tháng đó có bao nhiêu ngày c++ nhé!

Bài trước: Bài 10: Viết chương trình tính chỉ số bmi c++, yêu cầu:

– Nhập trọng lượng và chiều cao, tính BMI.

– Đưa ra các kết luận tương ứng dựa trên bảng đã cho.

1. Bài toán nhập tháng năm in ra số ngày trong tháng

Bài 11: Viết chương trình nhập vào từ bàn phím số nguyên n thuộc vào đoạn [1..12] và số nguyên m. In ra màn hình tháng và số ngày của tháng trong năm m ứng với m được nhập vào. Trong đó: 1 tương ứng với “Tháng giêng có 31 ngày”, 2 tương ứng với tháng 2,…, 12 tương ứng tháng 12. Nếu giá trị nhập vào không thuộc vào đoạn [1..12] thì thông báo “Không có tháng trong năm tương ứng với số bạn đã nhập”.

Tóm tắt lại bài toán: Viết chương trình nhập vào tháng, năm cho biết tháng đó có bao nhiêu ngày.

2. Mô tả thuật toán tìm số ngày của một tháng

Thuật toán viết chương trình nhập vào tháng và năm in ra số ngày của tháng đó được mô tả như sau:

Kiểm tra ngày tháng năm nhập vào có hợp lệ hay không?

Đoạn code dưới đây sử dụng vòng lặp do...while cho phép nhập n trong đoạn từ 1 đến 12 đến khi hợp lệ thì cho phép nhập tiếp

do {
  cout << "nhap thang n: ";
  cin >> n;
  if (n < 1 || n > 12) cout << "nhap sai. Moi nhap lai" << endl;
} while (n < 0 || n > 12);

Tính số ngày trong tháng

– Nếu n tháng thuộc những tháng 1,3,5,7,8,10,12 thì in ra màn hình tháng đó có 31 ngày. Ngược lại, nếu n tháng thuộc tháng 4,6,9,11 thì in ra màn hình tháng đó có 30 ngày.

Đặc biệt, đối với tháng 2 thì kiểm tra m năm xem năm đó có phải năm nhuận hay không. Nếu là năm nhuận thì in ra màn hình tháng 2 có 29 ngày, ngược lại in ra màn hình 28 ngày.

Kiểm tra năm nhuận c++

Một năm được gọi là nhuận nếu số năm đó chia hết cho 4 mà không chia hết cho 100. Hoặc năm đó chia hết cho 400.

if (m%4==0 || m%400==0) cout<<"Thang 2 co 29 ngay";//kiem tra nam nhuan else cout<<"Thang 2 co 28 ngay";

3. Code mẫu tìm số ngày trong tháng

#include<bits/stdc++.h>

using namespace std;
int main() {
  int n, m;
  //chi cho phep nhap n trong doan[1..12]
  do {
    cout << "nhap thang n: ";
    cin >> n;
    if (n < 1 || n > 12)
      cout << "nhap sai. Moi nhap lai" << endl;
  } while (n < 0 || n > 12);
  cout << "nhap nam m: ";
  cin >> m;
  switch (n) {
  case 1:
    if (n == 1) cout << "Thang 1 co 31 ngay";
    break;
  case 2:
    if (n == 2) {
      if (m % 4 == 0 || m % 400 == 0) cout << "Thang 2 co 29 ngay"; //kiem tra nam nhuan
      else cout << "Thang 2 co 28 ngay";
    }
  case 3:
    if (n == 3) cout << "Thang 3 co 31 ngay";
    break;
  case 4:
    if (n == 4) cout << "Thang 4 co 30 ngay";
    break;
  case 5:
    if (n == 5) cout << "Thang 5 co 31 ngay";
    break;
  case 6:
    if (n == 6) cout << "Thang 6 co 30 ngay";
    break;
  case 7:
    if (n == 7) cout << "Thang 7 co 31 ngay";
    break;
  case 8:
    if (n == 8) cout << "Thang 8 co 31 ngay";
    break;
  case 9:
    if (n == 9) cout << "Thang 9 co 30 ngay";
    break;
  case 10:
    if (n == 10) cout << "Thang 10 co 31 ngay";
    break;
  case 11:
    if (n == 11) cout << "Thang 11 co 30 ngay";
    break;
  default:
    cout << "Thang 12 co 31 ngay";
  };
}

4. Kết quả

Kết quả 1

Kết quả 2

Bài viết của mình đến đây là kết thúc. Nếu có bất kì thắc mắc nào thì đừng ngần ngại liên hệ với mình nhé. Cảm ơn bạn đã tham khảo bài viết trên ttnguyen.net!
Tải full bài tập thực hành C/C++ có lời giải

Bài tiếp theo: Bài 13: Một số hoàn thiện là một số có tổng các ước của nó (không kể nó) bằng chính nó. Hãy nhập vào một số nguyên dương n và kiểm tra số hoàn thiện.Ví dụ: số 6 là số hoàn thiện vì tổng các ước số là 1+2+3=6.

Nguyễn Tiến Trường

Mình viết về những điều nhỏ nhặt trong cuộc sống, Viết về câu chuyện những ngày không có em