用c语言编写函数,形式参数为代表年月日的三个整数,函数的功能为返回该日期是否为合法日期。主函数中输入一个日期的年月日三个整数,若为合法日期,输出YES,否则输出NO。输入样例:2050 10 5 输出样例:YES
时间: 2023-11-28 09:50:09 浏览: 165
下面是实现该功能的 C 语言代码:
```c
#include <stdio.h>
int is_leap_year(int year) { // 判断是否为闰年
return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);
}
int is_valid_date(int year, int month, int day) { // 判断日期是否合法
if (year < 1 || month < 1 || month > 12 || day < 1) {
return 0;
}
int max_day;
switch (month) {
case 2:
max_day = is_leap_year(year) ? 29 : 28;
break;
case 4:
case 6:
case 9:
case 11:
max_day = 30;
break;
default:
max_day = 31;
break;
}
return day <= max_day;
}
int main() {
int year, month, day;
scanf("%d%d%d", &year, &month, &day);
if (is_valid_date(year, month, day)) {
printf("YES\n");
} else {
printf("NO\n");
}
return 0;
}
```
函数 `is_leap_year` 判断是否为闰年,函数 `is_valid_date` 判断日期是否合法。主函数中调用这两个函数进行判断。
阅读全文