11.22

发布时间 2023-12-17 17:22:50作者: 刘梦磊

1. 定义一个结构体变量(包括年、月、日),计算该日在本年中是第几天,注意闰年的问题。

程序代码:

#include <stdio.h>

 

typedef struct {

    int year;

    int month;

    int day;

} Date;

 

// 计算是否为闰年

int isLeapYear(int year) {

    return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);

}

 

// 计算该日在本年中是第几天

int dayOfYear(Date date) {

    // 每个月的天数

    int daysInMonth[] = {31, 28 + isLeapYear(date.year), 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};

 

    // 初始化总天数为当月的天数

    int totalDays = date.day;

 

    // 累加前面几个月的天数

    for (int i = 0; i < date.month - 1; i++) {

        totalDays += daysInMonth[i];

    }

 

    return totalDays;

}

 

int main() {

    Date date;

    printf("请输入日期(年月日,例如2021 12 15): ");

    scanf("%d %d %d", &date.year, &date.month, &date.day);

 

    int day = dayOfYear(date);

 

    printf("%d年%d月%d日是该年中的第%d天\n", date.year, date.month, date.day, day);

 

    return 0;

}