输入一个包含年和月的日期(例如2022年1月),输出其上一个月的日期(例如2021年12月)。 (1)主函数功能:输入日期,调用子函数得到上一个月的日期,并输出。 (2)子函数功能:求输入日期的上一个月的日期, 子函数头要求定义为:void prevMonth(int *year, int *month)
时间: 2024-02-27 16:57:48 浏览: 27
好的,这是一个使用指针的 C++ 程序,可以实现您的要求:
```c++
#include <iostream>
using namespace std;
void prevMonth(int* year, int* month);
int main() {
int year, month;
// 获取输入
cout << "请输入日期(例如2022年1月):";
cin >> year;
cin.ignore(1, '年');
cin >> month;
cin.ignore(1, '月');
// 调用 prevMonth 函数
prevMonth(&year, &month);
// 输出结果
cout << "上一个月的日期为:" << year << "年" << month << "月" << endl;
return 0;
}
void prevMonth(int* year, int* month) {
if (*month == 1) {
// 如果是 1 月,则年份减 1,月份变为 12
*year -= 1;
*month = 12;
} else {
// 否则,月份减 1
*month -= 1;
}
}
```
在这个程序中,`prevMonth` 函数的作用是计算输入日期的上一个月的日期,它的输入参数是指向年份和月份的指针,输出结果通过修改这两个指针的值来实现。在 `main` 函数中,首先获取用户输入的日期,然后调用 `prevMonth` 函数计算上一个月的日期,最后输出结果。
需要注意的是,在输入中使用了 `cin.ignore` 函数来跳过中文字符“年”和“月”,这是因为在使用 `cin` 输入整数时,它会把“年”和“月”也当成整数的一部分,导致后续运算出错。因此,我们需要在输入后跳过这两个字符。
相关推荐
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)