c语言switch输入月日判断多少天
时间: 2024-12-01 15:30:20 浏览: 12
在C语言中,你可以使用`switch`语句配合`case`结构来根据月份和日期来判断一个月有多少天。通常,每个月份的天数是固定的,除了二月。对于非闰年的2月,有28天;而闰年(能被4整除,如果年份是100的话,还需能被400整除)的2月则有29天。以下是基本的示例代码:
```c
#include <stdio.h>
int main() {
int month, day;
printf("请输入月份(1-12)和日期:");
scanf("%d %d", &month, &day);
switch (month) {
case 1: // January
case 3: // March
case 5: // May
case 7: // July
case 8: // August
case 10: // October
case 12: // December
if (day <= 31) {
printf("该月有%d天。\n", day);
} else {
printf("错误,%d日超出了月份范围。\n", day);
}
break;
case 4: // April
case 6: // June
case 9: // September
case 11: // November
if (day <= 30) {
printf("该月有%d天。\n", day);
} else {
printf("错误,%d日超出了月份范围。\n", day);
}
break;
case 2: // February
if (is_leap_year()) { // 判断是否是闰年
if (day <= 29) {
printf("闰年的2月有%d天。\n", day);
} else {
printf("错误,%d日超出了闰年2月范围。\n", day);
}
} else {
if (day <= 28) {
printf("平年的2月有%d天。\n", day);
} else {
printf("错误,%d日超出了平年2月范围。\n", day);
}
}
break;
default:
printf("错误,月份输入非法。\n");
break;
}
return 0;
}
// 辅助函数,用于检查是否为闰年
bool is_leap_year() {
int year;
scanf("%d", &year);
return (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
}
```
阅读全文