Nhập vào số N là một ngày của tháng 1 năm 2018.In ra màn hình ngày hôm đó là ngày thứ mấy ( bằng tiếng anh), bt ngày 1/1/2018 là thứ 2 ( Monday ) Mng ai có thi tin học trẻ toàn quốc bảng A giải giúp em câu này với
2 câu trả lời
Hướng dẫn tìm số ngày trong tháng
Trong một năm thì các tháng có 31 ngày là: 1, 3, 5, 7, 8, 10, 12.
Các tháng có 30 ngày là: 4, 6, 9, 11.
Riêng tháng hai nếu là năm nhuận sẽ có 29 ngày, ngược lại nếu không nhuận thì có 28 ngày.
Như vậy sau khi nhập tháng và năm vào thì ta sẽ kiểm tra tháng đó là tháng mấy. Nếu tháng đó thuộc những tháng {1, 3, 5, 7, 8, 10, 12} thì ta sẽ kết luận tháng đó có 31 ngày. Tương tự những tháng {4, 6, 9, 11} sẽ có 30 ngày. Nếu kiểm tra tháng đó đúng là tháng hai thì ta phải kiểm tra xem năm đó có nhuận không. Nếu nhuận thì tháng đó sẽ có 29 ngày ngược lại thì sẽ là 28 ngày.
Viết chương trình tìm số ngày trong thángXây dựng hàm kiểm tra năm nhuận
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.
Ví dụ 2016 là một năm nhuận.
Code
0123456 bool isCheck(int nam) { if ((nam % 4 == 0 && nam % 100 != 0) || nam % 400 == 0) return true; return false;}
Hoặc nếu viết ngắn gọn như dưới đây cũng được
01234 bool isCheck(int nam) { return ((nam % 4 == 0 && nam % 100 != 0) || nam % 400 == 0);} Xây dựng hàm tìm số ngày trong tháng
Hàm này thì các bạn nên viết dưới dạng switch case sẽ ngắn gọn và logic hơn if else.
Code
0123456789101112131415161718192021222324252627 int fun(int thang, int nam) { switch (thang) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: return 31; case 4: case 6: case 9: case 11: return 30; case 2: if (isCheck(nam)) return 29; else return 28; default: cout << "So thang nhap khong hop le"<<endl; exit(0); }}
Bình thường các bạn hay thấy người ta dùng các lệnh break; sau case. Nhưng khi return thì hàm đã tự động kết thúc nên chúng ta không cần phải dùng lệnh break để nhảy ra khỏi switch case.
Bây giờ ta chỉ cần kiểm soát dữ liệu nhập vào từ hàm main nữa mà thôi. Một tháng hợp lệ sẽ nằm trong đoạn [1;12] và một năm hợp lệ sẽ lớn hơn bằng 0.
Code toàn bộ chương trình
0123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 #include<iostream> using namespace std; bool isCheck(int nam) { return ((nam % 4 == 0 && nam % 100 != 0) || nam % 400 == 0);} int fun(int thang, int nam) { switch (thang) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: return 31; case 4: case 6: case 9: case 11: return 30; case 2: if (isCheck(nam)) return 29; else return 28; default: cout << "So thang nhap khong hop le"<<endl; exit(0); }} int main(){ int thang, nam; do { cout << "Nhap thang: "; cin >> thang; cout << "Nhap nam: "; cin >> nam; } while (nam < 0 || thang < 1 || thang >12); cout << "So ngay trong thang: " << fun(thang, nam) << endl; return 0;} 01234 Nhap thang: 12Nhap nam: 2018So ngay trong thang: 31
#chucbanhoctot!
Hướng dẫn tìm số ngày trong tháng
Trong một năm thì các tháng có 31 ngày là: 1, 3, 5, 7, 8, 10, 12.
Các tháng có 30 ngày là: 4, 6, 9, 11.
Riêng tháng hai nếu là năm nhuận sẽ có 29 ngày, ngược lại nếu không nhuận thì có 28 ngày.
Như vậy sau khi nhập tháng và năm vào thì ta sẽ kiểm tra tháng đó là tháng mấy. Nếu tháng đó thuộc những tháng {1, 3, 5, 7, 8, 10, 12} thì ta sẽ kết luận tháng đó có 31 ngày. Tương tự những tháng {4, 6, 9, 11} sẽ có 30 ngày. Nếu kiểm tra tháng đó đúng là tháng hai thì ta phải kiểm tra xem năm đó có nhuận không. Nếu nhuận thì tháng đó sẽ có 29 ngày ngược lại thì sẽ là 28 ngày.
Viết chương trình tìm số ngày trong thángXây dựng hàm kiểm tra năm nhuận
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.
Ví dụ 2016 là một năm nhuận.
Code
0123456 bool isCheck(int nam) { if ((nam % 4 == 0 && nam % 100 != 0) || nam % 400 == 0) return true; return false;}
Hoặc nếu viết ngắn gọn như dưới đây cũng được
01234 bool isCheck(int nam) { return ((nam % 4 == 0 && nam % 100 != 0) || nam % 400 == 0);} Xây dựng hàm tìm số ngày trong tháng
Hàm này thì các bạn nên viết dưới dạng switch case sẽ ngắn gọn và logic hơn if else.
Code
0123456789101112131415161718192021222324252627 int fun(int thang, int nam) { switch (thang) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: return 31; case 4: case 6: case 9: case 11: return 30; case 2: if (isCheck(nam)) return 29; else return 28; default: cout << "So thang nhap khong hop le"<<endl; exit(0); }}
Bình thường các bạn hay thấy người ta dùng các lệnh break; sau case. Nhưng khi return thì hàm đã tự động kết thúc nên chúng ta không cần phải dùng lệnh break để nhảy ra khỏi switch case.
Bây giờ ta chỉ cần kiểm soát dữ liệu nhập vào từ hàm main nữa mà thôi. Một tháng hợp lệ sẽ nằm trong đoạn [1;12] và một năm hợp lệ sẽ lớn hơn bằng 0.
Code toàn bộ chương trình
0123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 #include<iostream> using namespace std; bool isCheck(int nam) { return ((nam % 4 == 0 && nam % 100 != 0) || nam % 400 == 0);} int fun(int thang, int nam) { switch (thang) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: return 31; case 4: case 6: case 9: case 11: return 30; case 2: if (isCheck(nam)) return 29; else return 28; default: cout << "So thang nhap khong hop le"<<endl; exit(0); }} int main(){ int thang, nam; do { cout << "Nhap thang: "; cin >> thang; cout << "Nhap nam: "; cin >> nam; } while (nam < 0 || thang < 1 || thang >12); cout << "So ngay trong thang: " << fun(thang, nam) << endl; return 0;} 01234 Nhap thang: 12Nhap nam: 2018So ngay trong thang: 31
#HOANGBACH3014