用C语言题目描述:输入年和月,判断该月有几天? 输入: 输入年和月,格式为年\月 输出: 输出该月的天数。 样例输入:2009\1 样例输出:31
时间: 2024-10-14 15:05:41 浏览: 33
输入某年某月某日,判断这一天是这一年的第几天?
在C语言中,判断某个月份有多少天通常需要考虑闰年的情况以及每个月的特殊天数规则。对于非闰年的普通月份,我们可以创建一个简单的函数来处理这个问题:
```c
#include <stdio.h>
int days_in_month(int year, int month) {
// 普通月份天数
static const int days[] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
// 如果是闰年并且是2月
if (is_leap_year(year) && month == 2) {
return 29;
} else {
return days[month];
}
}
// 判断是否为闰年
int is_leap_year(int year) {
return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);
}
int main() {
char input[10];
scanf("%s", input); // 输入格式如 "2009\1"
int year = atoi(input.substr(0, 4)); // 提取年份
int month = atoi(input.substr(6, 2)); // 提取月份
int days_in_current_month = days_in_month(year, month);
printf("%d\n", days_in_current_month);
return 0;
}
```
在这个例子中,`days_in_month`函数根据输入的年份和月份返回相应的天数。注意这里我们假设输入的是有效的年和月(即1到12之间),在实际应用中可能需要添加错误检查。
阅读全文