c语言在主函数中输入年、月、日,调用自定义函数计算该日是该年的第几天(注意闰年)。 例:输入2018 3 1,则输出60。
时间: 2023-11-28 12:09:49 浏览: 83
好的,这是一个比较简单的C语言题目,下面是代码实现:
```c
#include <stdio.h>
// 判断是否为闰年
int isLeapYear(int year){
if((year%4==0 && year%100!=0) || year%400==0)
return 1; // 是闰年
else
return 0; // 不是闰年
}
// 计算该日是该年的第几天
int getDayCount(int year, int month, int day){
int dayCount = 0;
int monthDays[] = {31,28,31,30,31,30,31,31,30,31,30,31}; // 每个月的天数,2月份默认为28天
// 如果是闰年,2月份天数改为29天
if(isLeapYear(year))
monthDays[1] = 29;
// 计算前几个月的天数
for(int i=0; i<month-1; i++){
dayCount += monthDays[i];
}
// 加上当月的天数
dayCount += day;
return dayCount;
}
int main(){
int year, month, day;
printf("请输入年、月、日,格式为:年 月 日\n");
scanf("%d %d %d", &year, &month, &day);
int dayCount = getDayCount(year, month, day);
printf("%d年%d月%d日是该年的第%d天\n", year, month, day, dayCount);
return 0;
}
```
解释一下代码:
1. 首先定义了两个函数,isLeapYear用于判断是否为闰年,getDayCount用于计算该日是该年的第几天;
2. 在主函数中,先输入年月日;
3. 调用getDayCount函数,计算该日是该年的第几天;
4. 输出结果。
希望这个解答能够帮到你!
阅读全文