C语言中用switch语句实现输入某年某月某日,判断这一天是这一年的第几天
时间: 2023-09-07 10:14:46 浏览: 123
c语言if语句实例_C语言if语句和switch语句实例_If..._
好的,下面是 C 语言中用 switch 语句实现输入某年某月某日,判断这一天是这一年的第几天的代码:
```c
#include <stdio.h>
int isLeapYear(int year) {
return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);
}
int main() {
int year, month, day;
int daysInMonth[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int i, days = 0;
printf("请输入年份:");
scanf("%d", &year);
printf("请输入月份:");
scanf("%d", &month);
printf("请输入日期:");
scanf("%d", &day);
// 计算该月之前的天数
for (i = 0; i < month - 1; i++) {
days += daysInMonth[i];
if (i == 1 && isLeapYear(year)) {
days++;
}
}
// 加上当月的天数
days += day;
// 判断是否是闰年且是3月1日之后的日期
if (isLeapYear(year) && month > 2) {
days++;
}
printf("%d年%d月%d日是该年的第%d天。\n", year, month, day, days);
return 0;
}
```
这个程序首先通过 `scanf` 语句获取用户输入的年份、月份和日期,然后使用一个 `daysInMonth` 数组来存储每个月的天数。接着使用一个循环计算该月之前的天数,并且如果该月是二月且是闰年,则将天数加 1。最后再加上当月的天数,如果该日期在三月1日之后且是闰年,则将天数加 1,最终输出结果。
阅读全文