将一个数组中的值按逆序重新存放。 要求输入为两行:第一行数组中元素的个数n(1 < n < 100),第二行是n个整数,每两个整数之间用一个空格分隔。 输出为一行:输出逆序后数组的整数,每两个整数之间用一个空格分隔 c++
时间: 2025-03-30 15:06:10 浏览: 35
要将一个数组中的值按逆序重新存放,并按照题目要求完成输入输出操作,可以借助C++语言的标准库功能轻松实现。以下是详细的解决方案:
---
### 解决思路
1. **读取输入**:首先从用户那里获取数组的大小`n`以及具体的`n`个整数值。
2. **存储数据**:使用动态分配或固定大小的容器(如`vector`)来保存这些整数。
3. **反转顺序**:利用标准库函数`std::reverse()`对数组内的元素进行翻转处理。
4. **输出结果**:最后遍历已反转后的数组并打印每个整数值。
下面是基于上述步骤的具体代码示例:
```cpp
#include <iostream>
#include <vector>
#include <algorithm> // std::reverse需要这个头文件
using namespace std;
int main() {
int n;
cin >> n; // 输入数组长度
vector<int> arr(n);
for(int i = 0; i < n; ++i){
cin >> arr[i]; // 输入数组元素
}
reverse(arr.begin(), arr.end()); // 使用std::reverse直接逆转数组内容
for(int i = 0; i < n; ++i) {
cout << arr[i];
if(i != n -1 ){
cout << " "; // 每两个数字间添加空格,最后一个不用加
}
}
return 0;
}
```
#### 示例运行情况:
假设输入如下:
```
5
1 8 3 9 7
```
程序将会返回:
```
7 9 3 8 1
```
---
### 关键点解析
- `#include <algorithm>` 引入了用于操作序列的各种算法,其中就包括本次使用的 `std::reverse`.
- 遍历时通过判断是否到达列表末端避免多余的结尾空格。
如果不想引入额外库,则也可以手动交换位置达到目的,但这通常较复杂且容易出错。
阅读全文
相关推荐

















