• 智能AI问答!更聪明、更完整、原创作!
  • 一款基于GPT的超级AI机器人,可以回答问题、聊天、创作、写文案!

输入一个年月日,要求输出这一天是该年的第几天

发布于 2024-07-30 13:00:00

要编写一个C语言程序来计算输入的年月日是该年的第几天,需要考虑不同月份的天数以及是否为闰年。下面是实现这一功能的程序:

#include <stdio.h>

// 函数用于判断是否为闰年
int isLeapYear(int year) {
    return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);
}

// 函数用于获取月份的天数
int getDaysInMonth(int year, int month) {
    switch (month) {
        case 1: case 3: case 5: case 7: case 8: case 10: case 12:
            return 31;
        case 4: case 6: case 9: case 11:
            return 30;
        case 2:
            return isLeapYear(year) ? 29 : 28;
        default:
            return 0;
    }
}

int main() {
    int year, month, day, i, totalDays = 0;

    printf("请输入年月日(格式如:2024 2 29):");
    scanf("%d %d %d", &year, &month, &day);

    // 判断日期是否合法
    if (month < 1 || month > 12 || day < 1 || day > getDaysInMonth(year, month)) {
        printf("输入的日期不合法。\n");
    } else {
        // 计算输入日期之前每个月的天数总和
        for (i = 1; i < month; ++i) {
            totalDays += getDaysInMonth(year, i);
        }
        totalDays += day; // 加上输入的月份的天数

        printf("%d年%d月%d日是该年的第%d天。\n", year, month, day, totalDays);
    }

    return 0;
}

这个程序首先定义了两个辅助函数:isLeapYear用于判断是否为闰年,getDaysInMonth用于获取给定月份的天数。然后在main函数中,程序提示用户输入年月日,并通过scanf函数读取输入。之后,程序检查输入的日期是否合法,并计算出这一天是该年的第几天,最后输出结果。

0 条评论

发布
问题

在线
客服