右侧编辑器中有一个函数ToDate它有一个参数n代表所求的日期自2000年1月1日后经过的天数。 请在这个函数中补充代码计算第n天的日期并按照年年年年-月月-日日的格式输出占一行。 允许自由增加函数只要ToDate函数的功能正确即可。 输入数据由评测系统读取并传递给ToDate函数。具体见测试说明。C语言编程
#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; }
原文地址: https://www.cveoy.top/t/topic/boVa 著作权归作者所有。请勿转载和采集!