输入年月日,输出此日期是该年的第几天。 (如果该年是闰年的话则标明该年为闰年) (输入年月日有误需提示输入错误并提示重新输入) (使用switch判断) (输入三个正整数表示年月日,用空格隔开,输出一个正整数天数) 1/推荐时间1天 使用 c 语言
时间: 2024-09-27 09:06:24 浏览: 43
在C语言中,我们可以使用`switch`语句和一些基本的数学计算来实现这个功能。以下是一个简单的函数设计示例:
```c
#include <stdio.h>
int is_leap_year(int year) {
// 判断是否是闰年
if (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0)) {
return 1; // 是闰年
} else {
return 0; // 非闰年
}
}
int main() {
int year, month, day;
printf("请输入年、月、日,用空格隔开:");
scanf("%d %d %d", &year, &month, &day);
// 检查输入是否有效
if (month <= 0 || month > 12 || day <= 0 || day > 31 || year <= 0) {
printf("输入错误,请重新输入。\n");
return 1;
}
int total_days = 0;
// 根据月份和是否为闰年累加天数
switch (month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
total_days += 31;
break;
case 4:
case 6:
case 9:
case 11:
total_days += 30;
break;
case 2:
if (is_leap_year(year)) {
total_days += 29;
} else {
total_days += 28;
}
break;
default:
printf("错误的月份。请输入正确的月份。\n");
return 1;
}
// 加上给定的天数
total_days += day;
printf("日期 %d/%d/%d 是 %d 年的第 %d 天。\n", month, day, year, year, total_days);
return 0;
}
```
阅读全文