c++实现描述 将一个数组中的值按逆序重新存放。例如,原来的顺序为8,6,5,4,1。要求改为1,4,5,6,8。 输入描述 输入为两行:第一行数组中元素的个数n(1<n<100),第二行是n个整数,每两个整数之间用空格分隔。 输出描述 输出为一行:输出逆序后数组的整数,每两个整数之间用空格分隔。
时间: 2024-03-04 21:49:03 浏览: 56
以下是C++实现代码:
```c++
#include <iostream>
using namespace std;
int main() {
int n;
cin >> n; // 输入数组元素个数
int arr[n];
for (int i = 0; i < n; i++) {
cin >> arr[i]; // 输入数组元素
}
// 将数组元素按逆序重新存放
for (int i = 0; i < n / 2; i++) {
int temp = arr[i];
arr[i] = arr[n - i - 1];
arr[n - i - 1] = temp;
}
// 输出逆序后的数组元素
for (int i = 0; i < n; i++) {
cout << arr[i] << " ";
}
return 0;
}
```
输入示例:
```
5
8 6 5 4 1
```
输出示例:
```
1 4 5 6 8
```
相关问题
c++将一个数组中的值按逆序重新存放,例如,原来顺序为8,6,5,4,1,要求改为1,4,5,6,8.
可以采用双指针的方式,一个指针指向数组的开头,另一个指针指向数组的结尾,交换它们所指向的元素,然后两个指针分别向中间移动,直到它们相遇为止。下面是一个示例代码:
```c++
#include <iostream>
using namespace std;
void reverse(int arr[], int n) {
int left = 0, right = n - 1;
while (left < right) {
swap(arr[left], arr[right]);
left++;
right--;
}
}
int main() {
int arr[] = {8, 6, 5, 4, 1};
int n = sizeof(arr) / sizeof(arr[0]);
reverse(arr, n);
for (int i = 0; i < n; i++) {
cout << arr[i] << " ";
}
cout << endl;
return 0;
}
```
输出结果为:
```
1 4 5 6 8
```
用c++将 一 个数组中的值按逆序重新存放。例如,原来顺序为8,6,5,4,1,要求改为1,4,5,6,8。
在C++中,你可以使用两个指针,一个指向数组的开始,另一个指向结束,然后依次交换它们指向的元素,直到两个指针相遇。这是一种常见的逆序数组的方法,被称为“双指针法”。以下是示例代码:
```cpp
#include <iostream>
void reverseArray(int arr[], int size) {
int start = 0; // 指向数组开头
int end = size - 1; // 指向数组结尾
while (start < end) { // 当起点小于终点时继续循环
std::swap(arr[start], arr[end]); // 交换两端元素
start++; // 移动起始指针
end--; // 移动结束指针
}
}
int main() {
int arr[] = {8, 6, 5, 4, 1};
int n = sizeof(arr) / sizeof(arr[0]);
std::cout << "Original array: ";
for (int i = 0; i < n; i++) {
std::cout << arr[i] << " ";
}
reverseArray(arr, n);
std::cout << "\nReversed array: ";
for (int i = 0; i < n; i++) {
std::cout << arr[i] << " ";
}
return 0;
}
```
运行这段代码,你会看到原数组8, 6, 5, 4, 1经过reverseArray函数处理后变为1, 4, 5, 6, 8。
阅读全文