使用C语言完成:1年有12个月,每个月有31天或者30天,2月在平年时为28天,闰年时29天,输入一个日期,判断该日期是闰年还是平年
时间: 2024-10-28 22:07:39 浏览: 18
输出每个月的天数C语言PTA
在C语言中,我们可以编写一个简单的程序来判断给定的日期是否是闰年。首先,我们需要创建一个函数,接受一个整数表示年份作为输入,然后按照闰年的规则检查它。以下是基本的步骤:
```c
#include <stdio.h>
// 判断是否为闰年
int is_leap_year(int year) {
if (year % 4 != 0) { // 如果不是能被4整除的年份,则不是闰年
return 0;
} else if (year % 100 != 0) { // 如果同时能被4整除但不能被100整除,是闰年
return 1;
} else if (year % 400 != 0) { // 如果能被100整除但不能被400整除,不是闰年
return 0;
} else { // 能被400整除,也是闰年
return 1;
}
}
int main() {
int month, day, year;
printf("请输入月份(1-12),日子(1-31),以及年份: ");
scanf("%d %d %d", &month, &day, &year);
// 检查2月(因为特殊的闰年规则)
if (month == 2) {
if (is_leap_year(year)) {
if (day > 29) {
printf("错误:2月最多只有29天。\n");
} else {
printf("这是一个闰年。\n");
}
} else {
if (day > 28) {
printf("错误:2月最多只有28天。\n");
} else {
printf("这不是一个闰年。\n");
}
}
} else if (month == 2 && is_leap_year(year)) {
// 其他非二月的月份,如果在闰年
printf("这是闰年,%d年 %d月 %d日。\n", year, month, day);
} else {
// 非闰年
printf("这不是一个闰年,%d年 %d月 %d日。\n", year, month, day);
}
return 0;
}
```
在这个程序中,用户会被提示输入月份、日子和年份。然后我们会判断月份是否为2月,如果是则按照闰年的规则检查日期;如果不是2月,我们还会检查当前年份是否是闰年。
阅读全文