C语言定义一个结构体变量(包括年、 月、日),編写程序,要求輸入年、 月、日,程序能计算并输出该日在本年中是第几天,注意闰年问题
时间: 2023-07-10 21:03:32 浏览: 95
以下是实现该功能的C语言代码:
```c
#include <stdio.h>
struct Date{
int year;
int month;
int day;
};
int isLeapYear(int year){
if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0){
return 1;
}
return 0;
}
int getDayOfYear(struct Date date){
int dayOfYear = 0;
int daysInMonth[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
if(isLeapYear(date.year)){
daysInMonth[1] = 29;
}
for(int i = 0; i < date.month - 1; i++){
dayOfYear += daysInMonth[i];
}
dayOfYear += date.day;
return dayOfYear;
}
int main(){
struct Date date;
printf("请输入年、月、日(以空格分隔):");
scanf("%d%d%d", &date.year, &date.month, &date.day);
int dayOfYear = getDayOfYear(date);
printf("%d年%d月%d日是本年的第%d天\n", date.year, date.month, date.day, dayOfYear);
return 0;
}
```
程序中定义了一个结构体 `Date` 表示日期,其中包含年、月、日三个成员变量。`isLeapYear` 函数判断是否为闰年,如果是闰年则返回1,否则返回0。`getDayOfYear` 函数根据输入的日期计算出本年中是第几天,需要考虑闰年的情况。程序从标准输入中读取年、月、日,然后调用 `getDayOfYear` 函数计算出本年中是第几天,最后输出结果。
阅读全文