fun3.c:输入某年某月某日,判断这一天是这一-年的第几天?
时间: 2023-09-28 22:05:55 浏览: 76
以下是Fun3.c的代码实现:
```c
#include <stdio.h>
#include "define.h"
int isLeapYear(int year)
{
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
return 1;
} else {
return 0;
}
}
int getDays(int year, int month, int day)
{
int days = 0;
int i;
int monthDays[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
if (isLeapYear(year)) {
monthDays[1] = 29;
}
for (i = 0; i < month - 1; i++) {
days += monthDays[i];
}
days += day;
return days;
}
void fun3()
{
int year, month, day;
printf("请输入年月日,格式为yyyy-mm-dd:");
scanf("%d-%d-%d", &year, &month, &day);
int days = getDays(year, month, day);
printf("%d-%d-%d是%d年的第%d天。\n", year, month, day, year, days);
}
```
该函数实现了输入某年某月某日,判断这一天是这一年的第几天的功能。首先定义了一个判断闰年的函数isLeapYear,该函数接收一个年份参数,如果该年份是闰年,则返回1,否则返回0。然后定义了一个计算天数的函数getDays,该函数接收三个参数,分别是年、月、日,返回这一天是这一年的第几天。在函数中,首先定义了一个月份天数的数组monthDays,然后根据年份判断2月份的天数,接着使用一个for循环计算之前月份的天数,最后加上当月的天数,即为这一天是这一年的第几天。最后在主函数中,使用scanf函数输入年月日,调用getDays函数计算天数,并输出结果。
阅读全文