计算指定年月所包含的天数(要求用 switch 语句来实现)。c语言
时间: 2024-12-17 16:38:17 浏览: 3
在C语言中,计算特定月份有多少天通常会涉及到闰年的判断,因为二月的天数取决于是否为闰年。我们可以使用switch语句结合if条件来实现这个功能。下面是一个简单的示例:
```c
#include <stdio.h>
int days_in_month(int year, int month) {
// switch case for different months
switch (month) {
case 1: // January
return 31;
case 2: // February
if (is_leap_year(year)) {
return 29; // Leap year
} else {
return 28; // Common year
}
case 3: // March
return 31;
case 4: // April
return 30;
case 5: // May
return 31;
case 6: // June
return 30;
case 7: // July
return 31;
case 8: // August
return 31;
case 9: // September
return 30;
case 10: // October
return 31;
case 11: // November
return 30;
case 12: // December
return 31;
default: // Invalid month
printf("Invalid month number.\n");
return -1; // Return an error code
}
}
// Function to check if a year is leap or not
int is_leap_year(int year) {
if (year % 4 != 0)
return 0;
else if (year % 100 != 0)
return 1;
else if (year % 400 != 0)
return 0;
else
return 1;
}
int main() {
int year, month;
printf("Enter the year and month (1-12): ");
scanf("%d %d", &year, &month);
int days = days_in_month(year, month);
if (days >= 0)
printf("Month %d in year %d has %d days.\n", month, year, days);
return 0;
}
```
在这个程序里,`days_in_month`函数通过switch-case结构处理不同月份,并根据闰年规则检查2月的天数。用户输入年份和月份后,它将返回该月的天数。
阅读全文