本关任务:C++设计一个程序用于向后推算指定日期经过n天后的具体日期。 编程要求 根据提示,在右侧编辑器补充代码,输入为长度为8的字符串str和一个正整数n,str前四位表示年份,后四位表示月和日。当推算出的年份大于4位数时,输出“out of limit!”,否则输出8位的具体日期。
时间: 2023-06-14 19:03:35 浏览: 170
```c
#include <stdio.h>
int is_leap_year(int year) {
return year % 400 == 0 || (year % 4 == 0 && year % 100 != 0);
}
int main() {
char str[9];
int n;
scanf("%s %d", str, &n);
int year = (str[0] - '0') * 1000 + (str[1] - '0') * 100 + (str[2] - '0') * 10 + (str[3] - '0');
int month = (str[4] - '0') * 10 + (str[5] - '0');
int day = (str[6] - '0') * 10 + (str[7] - '0');
for (int i = 0; i < n; i++) {
day++;
int max_day = 31;
if (month == 2) {
max_day = is_leap_year(year) ? 29 : 28;
} else if (month == 4 || month == 6 || month == 9 || month == 11) {
max_day = 30;
}
if (day > max_day) {
day = 1;
month++;
}
if (month > 12) {
month = 1;
year++;
}
if (year > 9999) {
printf("out of limit!\n");
return 0;
}
}
printf("%04d%02d%02d\n", year, month, day);
return 0;
}
```
阅读全文