C语言计算累加所在月之前天数
时间: 2023-09-14 19:12:00 浏览: 65
以下是一个计算累加所在月之前天数的示例代码:
```c
#include <stdio.h>
int isLeapYear(int year); // 判断是否为闰年
int sum_day(int year, int month, int day); // 计算累加所在月之前天数
int main() {
int year = 2021;
int month = 8;
int day = 18;
int days = sum_day(year, month, day);
printf("%d年%d月%d日是该年的第%d天\n", year, month, day, days);
return 0;
}
int isLeapYear(int year) {
return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);
}
int sum_day(int year, int month, int day) {
int daysInMonth[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; // 每个月的天数
int days = 0;
for (int i = 1; i < month; i++) {
days += daysInMonth[i - 1];
if (i == 2 && isLeapYear(year)) {
days++; // 闰年二月加一天
}
}
days += day;
return days;
}
```
解释一下,和上面的示例代码类似,也是先定义一个判断闰年的函数 `isLeapYear`,然后定义一个计算累加所在月之前天数的函数 `sum_day`。在 `sum_day` 函数中,定义了数组 `daysInMonth` 存储每个月的天数,然后使用循环计算累加到该月的天数,如果是闰年的话还要特别处理二月的天数。最后再加上当月的天数,就可以得到累加所在月之前的天数了。