把n个数按输入时的顺序逆序,用指针
时间: 2023-08-31 13:35:03 浏览: 71
### 回答1:
下面是一个例子,使用指针将n个数按照输入顺序逆序输出:
```c++
#include <iostream>
using namespace std;
int main() {
int n;
cout << "请输入数的个数:";
cin >> n;
int *arr = new int[n]; // 动态分配n个整数的内存
cout << "请输入这" << n << "个数:" << endl;
for (int i = 0; i < n; i++) {
cin >> *(arr + i); // 使用指针进行输入
}
cout << "按输入顺序逆序输出:" << endl;
for (int i = n - 1; i >= 0; i--) {
cout << *(arr + i) << " "; // 使用指针进行输出
}
delete[] arr; // 释放动态分配的内存
return 0;
}
```
在这个例子中,我们使用 `new` 关键字动态分配了一个包含 `n` 个整数的数组。然后,我们使用指针进行输入和输出,最后使用 `delete[]` 关键字释放动态分配的内存。
### 回答2:
要按照输入时的顺序将n个数逆序,可以通过指针来实现。假设我们有一个包含n个数的数组arr,首先我们可以定义两个指针,一个指向数组的起始位置,另一个指向数组的结束位置。
```cpp
void reverseArray(int *arr, int n) {
int *start = arr; // 定义指向起始位置的指针
int *end = arr + n - 1; // 定义指向结束位置的指针
while (start < end) {
// 交换指针所指向的值
int temp = *start;
*start = *end;
*end = temp;
// 移动指针到下一个位置
start++;
end--;
}
}
```
以上代码中,我们定义了两个指针start和end,start指向数组的起始位置,end指向数组的结束位置。然后我们进入一个while循环,只要start指针小于end指针,就进行以下操作:
1. 交换指针所指向的值,这样就能实现逆序的效果。
2. 移动指针到下一个位置,start指针向前移动,end指针向后移动。
最后,我们调用该函数,传入需要逆序的数组和数组的长度即可完成逆序操作。
举个例子,如果我们有一个包含5个数的数组arr,内容为 [1, 2, 3, 4, 5],调用reverseArray(arr, 5)后,数组的内容将变为 [5, 4, 3, 2, 1]。
阅读全文