用C语言编写-一个程序,实现输入年月日,输出该年份还剩多少天。(Switch语句+考虑闰年)
时间: 2024-10-18 15:15:36 浏览: 25
c语言代码,输入年月日计算天数
为了编写一个C语言程序,计算给定年、月、日剩余的天数,我们首先需要处理闰年的特殊情况,然后利用switch语句针对每个月的日数不同情况进行判断。以下是一个简单的示例:
```c
#include <stdio.h>
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 days_in_month(int month, int year) {
switch(month) {
case 1: case 3: case 5: case 7: case 8: case 10: case 12:
return 31;
case 4: case 6: case 9: case 11:
return 30;
case 2:
if (is_leap_year(year))
return 29;
else
return 28;
default:
return -1; // 错误的月份输入
}
}
int main() {
int year, month, day;
printf("请输入年份: ");
scanf("%d", &year);
printf("请输入月份(1-%d): ", 12);
scanf("%d", &month);
printf("请输入日期: ");
scanf("%d", &day);
if (month > 12 || day > days_in_month(month, year)) {
printf("错误的日期输入!\n");
} else {
int remaining_days = (365 + is_leap_year(year)) * (month <= 2 ? year - 1 : year) +
days_in_month(month, year) - day;
printf("在%d年%02d月%02d日后,该年剩余 %d 天。\n", year, month, day, remaining_days);
}
return 0;
}
```
在这个程序中,`is_leap_year()`函数检查给定年份是否为闰年,`days_in_month()`函数则根据月份和年份返回相应的天数。在`main()`函数中,用户输入年月日,程序会计算并输出剩余天数。
阅读全文