c语言输入某年某月某天,判断是一年中的第几天代码
时间: 2024-02-06 09:10:52 浏览: 62
以下是一个实现输入某年某月某日,判断该日在该年中是第几天的C语言代码:
```c
#include <stdio.h>
int isLeap(int year) { // 判断闰年
return (year % 4 == 0 && year % 100 != 0) || year % 400 == 0;
}
int main() {
int year, month, day, i, days = 0;
int monthday[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; // 存储每个月的天数
printf("请输入年月日,格式为 yyyy mm dd:\n");
scanf("%d %d %d", &year, &month, &day);
if (isLeap(year)) { // 如果是闰年,则2月有29天
monthday[2] = 29;
}
for (i = 1; i < month; i++) { // 计算该月之前的天数和
days += monthday[i];
}
days += day; // 加上该月的天数
printf("%d年%d月%d日是该年的第%d天\n", year, month, day, days);
return 0;
}
```
该程序先通过 `isLeap` 函数判断输入年份是否为闰年,如果是则将2月份的天数设为29天。然后通过一个长度为13的数组 `monthday` 存储每个月的天数,其中下标为0的位置不用,下标为1的位置存储1月的天数,以此类推。接着通过一个循环累加该月之前的天数和,最后加上该月的天数,输出结果即可。
阅读全文