(下一天问题) 设计一个算法,这个算法获取今天的日期,计算并返回下一天的日期。我们先设计一个函数 $f(y,m)$ ,它接收的两个参数 $y$ 和 $m$ 分别表示年份和月份,$f(y,m)$ 会返回 $y$ 年 $m$ 月的天数。
在此基础上,计算并输出 $y$ 年 $m$ 月 $d$ 日的下一天的日期。
题目保证输入的日期一定是合法的,试补全下方模拟程序
1 #include <iostream>
2 using namespace std;
3 int f(int y, int m)
4 {
5 // 此处为判断并返回y年m月的天数的代码,省略
6 }
7 int main()
8 {
9 int y, m, d;
10 cin >> y >> m >> d;
11 if ( ___(1)___ ){
12 cout << "下一天是" <<
y << "年" <<
m << "月" <<
d+1 << "日" << endl;
}
13 else if ( ___(2)___ ){
14 cout << "下一天是" <<
y << "年" <<
m+1 << "月" <<
1 << "日" << endl;
}
15 else{
16 cout << "下一天是" <<
___(3)___ << "年" <<
___(4)___ << "月" <<
___(5)___ << "日" << endl;
}
17 return 0;
18 }
1. B。当 $d < f(y,m)$ 时, $y$ 年 $m$ 月 $d$ 日的下一天是 $y$ 年 $m$ 月 $d+1$ 日。
2. C。当 $d < f(y,m)$ 不成立(即 $d==f(y,m)$ )时,说明是该月的最后一天,此时若 $m < 12$,则 $y$ 年 $m$ 月 $d$ 日的下一天是 $y$ 年 $m+1$ 月 $1$ 日。
3. C。当 $d < f(y,m)$ 和 $m < 12$ 均不成立是,说明 $m==12$ 且 $d==31$,说明是 $y$ 年的最后一天,所以它对应的下一天是 $y+1$ 年 $1$ 月 $1$日。
4. A。
5. A。