c语言编写 输入格式: 为两个用空格分隔的正整数year和month,它们分别代表年份和月份。 输入保证合法,用int型存储即可。 输出格式: 为year年month月的天数。
时间: 2024-10-11 09:14:40 浏览: 27
万维考试系统-C语言题库-含题目-程序设计题导出-113道.pdf
5星 · 资源好评率100%
在C语言中,你可以使用标准库函数`mktime()`或者直接计算来得到给定年月的天数。这里给出一个使用`mktime()`的例子,它需要处理闰年的规则:
```c
#include <stdio.h>
#include <time.h>
int main() {
int year, month;
// 获取用户输入的年份和月份
scanf("%d %d", &year, &month);
// 确保输入的是1-12之间的月份
if (month < 1 || month > 12) {
printf("错误: 请输入1-12之间的月份。\n");
return 1;
}
// 创建一个时间结构,然后用mktime设置日期
struct tm date = {0};
date.tm_year = year - 1900; // mktime以1900为基础
date.tm_mon = month - 1;
date.tm_mday = 1; // 初始日是1号
// 使用mktime计算总天数,并减去一天(因为1月1号已经包含在内)
time_t t = mktime(&date);
int days_in_month = t ? (int)t : -1;
// 输出结果
if (days_in_month == -1) {
printf("错误: 年月组合无效。\n");
} else {
printf("%d年%d月有 %d 天。\n", year, month, days_in_month);
}
return 0;
}
阅读全文