编写一个C程序,在主函数给出年、月、日,通过调用函数计算该日是该年的第几天。
时间: 2023-11-27 14:49:48 浏览: 115
万年历C语言程序(可以查月,年星期几)
以下是计算该日是该年的第几天的C程序代码:
```
#include <stdio.h>
int isLeapYear(int year); // 判断是否为闰年
int getDayOfYear(int year, int month, int day); // 计算该日是该年的第几天
int main()
{
int year, month, day;
printf("请输入年、月、日:\n");
scanf("%d %d %d", &year, &month, &day);
int dayOfYear = getDayOfYear(year, month, day);
printf("%d年%d月%d日是该年的第%d天\n", year, month, day, dayOfYear);
return 0;
}
int isLeapYear(int year) {
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
return 1;
} else {
return 0;
}
}
int getDayOfYear(int year, int month, int day) {
int daysInMonth[] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int i, days = 0;
for (i = 1; i < month; i++) {
days += daysInMonth[i];
}
if (month > 2 && isLeapYear(year)) {
days += 1;
}
days += day;
return days;
}
```
在这个程序中,我们定义了两个函数来实现计算该日是该年的第几天的功能。isLeapYear() 函数用于判断是否为闰年,如果是闰年则返回1,否则返回0。getDayOfYear() 函数用于计算该日是该年的第几天。它首先定义了一个数组 daysInMonth 存储每个月的天数,然后遍历 1 到 month-1 月份,将每个月的天数加起来。如果当前月份大于 2 月且该年是闰年,则将天数加 1,最后再加上 day 就是该日是该年的第几天了。
阅读全文