编写一个C程序输入年月(用空格间隔),输出该年该月有多少天。
时间: 2024-10-21 20:03:05 浏览: 22
编写一个C程序来计算给定年月的天数,通常需要考虑到平年和闰年的规则。闰年是指能被4整除的年份,但是能被100整除的不是闰年;然而,如果这个年份同时也能被400整除,则仍然是闰年。对于非整月(如二月),一般月份有30天,而二月则需要特别处理。
下面是一个简单的C程序示例:
```c
#include <stdio.h>
int is_leap_year(int year) {
if (year % 4 == 0) {
if (year % 100 == 0)
return year % 400 == 0;
else
return true; // 平年
}
else
return false; // 非闰年
}
int main() {
int year, month;
printf("请输入年份(例如2023)和月份(例如01至12): ");
scanf("%d %d", &year, &month);
if(month == 2 && is_leap_year(year)) {
printf("2月在%d年是闰年,共有29天。\n", year);
} else if(month == 2) {
printf("2月在%d年是非闰年,共有28天。\n", year);
} else {
switch(month) {
case 1: case 3: case 5: case 7: case 8: case 10: case 12:
printf("%d月有31天。\n", month);
break;
case 4: case 6: case 9: case 11:
printf("%d月有30天。\n", month);
break;
default:
printf("错误的月份值!\n");
}
}
return 0;
}
```
在这个程序中,`is_leap_year()` 函数用于判断是否为闰年,然后根据用户输入的年月信息输出相应的天数。注意,此程序假设用户不会输入超过范围的月份或负数。
阅读全文