#include <stdio.h>

void ToDate(int n) { int year = 2000, month = 1, day = 1; while(n > 0) { int daysOfMonth = 31; if(month == 2) { daysOfMonth = 28; if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) daysOfMonth = 29; } else if(month == 4 || month == 6 || month == 9 || month == 11) daysOfMonth = 30;

    if(n >= daysOfMonth)
    {
        n -= daysOfMonth;
        month++;
        if(month > 12)
        {
            year++;
            month = 1;
        }
    }
    else
    {
        day += n;
        if(day > daysOfMonth)
        {
            month++;
            if(month > 12)
            {
                year++;
                month = 1;
            }
            day -= daysOfMonth;
        }
        n = 0;
    }
}
printf("%04d-%02d-%02d\n", year, month, day);

}

int main() { int n; scanf("%d", &n); ToDate(n); return 0; }

右侧编辑器中有一个函数ToDate它有一个参数n代表所求的日期自2000年1月1日后经过的天数。 请在这个函数中补充代码计算第n天的日期并按照年年年年-月月-日日的格式输出占一行。 允许自由增加函数只要ToDate函数的功能正确即可。 输入数据由评测系统读取并传递给ToDate函数。具体见测试说明。C语言编程

原文地址: https://www.cveoy.top/t/topic/boVa 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录