用C语言在switch语句格式中的部分语句后面使用break 语句写一个根据输入的年月,输出该年,该月的天数
时间: 2024-09-10 21:14:29 浏览: 24
在C语言中,你可以创建一个 `switch` 语句来检查输入的月份,并基于此返回特定月份的天数。例如,对于闰年的2月,我们通常会考虑规则(如果年份能被4整除但不能被100整除,或者能被400整除,则是闰年)。下面是示例代码:
```c
#include <stdio.h>
int daysInMonth(int year, int month) {
// 初始判断是否为闰年
bool isLeapYear = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
switch (month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
return 31; // 除2月外的其他大月都是31天
case 4:
case 6:
case 9:
case 11:
return isLeapYear ? 30 : 31; // 非闰年的这些小月有30天,闰年则加一天
case 2:
// 特殊处理闰年和平年的2月天数
if (isLeapYear) {
return 29;
} else {
return 28;
}
default:
printf("Invalid month! Please input a number from 1 to 12.\n");
return -1; // 表示非法输入
}
}
int main() {
int year, month;
printf("Enter the year: ");
scanf("%d", &year);
printf("Enter the month (1-12): ");
scanf("%d", &month);
if (month > 0 && month <= 12) { // 确保输入合法
int numDays = daysInMonth(year, month);
if (numDays != -1) {
printf("There are %d days in %d-%02d.\n", numDays, year, month);
}
} else {
printf("Invalid input for the month.\n");
}
return 0;
}
```
这个程序首先检查输入的月份,然后在 `switch` 中分别处理每个月的天数。在处理2月时,还需要判断是否为闰年。如果输入的月份不在1到12之间,程序会输出错误信息并返回 `-1`。