c语言 给出一个日期输出下一天的日期。输入若干日期至EOF结束
时间: 2023-11-03 11:04:18 浏览: 147
好的,以下是 C 语言的代码实现:
```c
#include <stdio.h>
int main() {
int year, month, day;
while (scanf("%d%d%d", &year, &month, &day) != EOF) {
// 判断是否为闰年
int leap = 0;
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
leap = 1;
}
// 计算下一天的日期
int next_year = year;
int next_month = month;
int next_day = day + 1;
if (next_day > 31 || (next_day > 30 && (next_month == 4 || next_month == 6 || next_month == 9 || next_month == 11)) || (next_day > 29 && next_month == 2 && leap) || (next_day > 28 && next_month == 2 && !leap)) {
next_day = 1;
next_month++;
if (next_month > 12) {
next_month = 1;
next_year++;
}
}
// 输出下一天的日期
printf("%04d-%02d-%02d\n", next_year, next_month, next_day);
}
return 0;
}
```
代码解释:
1. 使用 `scanf` 函数读入年、月、日。
2. 判断当前年份是否为闰年,如果是则将 `leap` 变量赋值为 1。
3. 根据下一天的日期计算出下一天的年份、月份和日期。
4. 根据题目要求输出下一天的日期,格式为 `YYYY-MM-DD`。
注意事项:
1. 该代码只适用于输入正确的日期,如果输入非法的日期可能会导致程序崩溃。
2. 该代码只适用于输入至 EOF 结束的情况,如果需要在程序中手动终止输入需要修改程序的逻辑。
阅读全文