C语言中用switch语句实现输入某年某月某日,判断这一天是这一年的第几天
时间: 2023-09-07 18:14:43 浏览: 81
好的,我可以为您解答这个问题。
您可以通过以下的代码来实现这个功能:
```c
#include <stdio.h>
int main() {
int year, month, day;
int days = 0;
printf("请输入年份:");
scanf("%d", &year);
printf("请输入月份:");
scanf("%d", &month);
printf("请输入日期:");
scanf("%d", &day);
switch (month) {
case 1:
days = day;
break;
case 2:
days = 31 + day;
break;
case 3:
days = 59 + day;
break;
case 4:
days = 90 + day;
break;
case 5:
days = 120 + day;
break;
case 6:
days = 151 + day;
break;
case 7:
days = 181 + day;
break;
case 8:
days = 212 + day;
break;
case 9:
days = 243 + day;
break;
case 10:
days = 273 + day;
break;
case 11:
days = 304 + day;
break;
case 12:
days = 334 + day;
break;
default:
printf("输入有误,请重新输入!");
return 0;
}
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
if (month > 2) {
days += 1;
}
}
printf("%d年%d月%d日是该年的第%d天", year, month, day, days);
return 0;
}
```
代码思路解析:
1. 首先,通过 `scanf` 函数分别输入年份、月份、日期。
2. 然后,通过 `switch` 语句根据输入的月份,计算该月份之前的天数,把该月份的天数加上去。
3. 接着,如果是闰年并且输入的月份大于2月,则需要再加上1天。
4. 最后,输出结果。
希望能够帮助到您。