c++中将一个数组中的值按逆序重新存放
时间: 2024-12-12 14:18:17 浏览: 74
在 C++ 中,你可以通过迭代和交换元素的方式来将数组中的值按逆序排列。这里有一个简单的例子:
```cpp
#include <iostream>
void reverseArray(int arr[], int size) {
// 从数组两端开始遍历,逐次交换元素
for (int i = 0; i < size / 2; ++i) {
// 交换第 i 个元素和倒数第 i+1 个元素
std::swap(arr[i], arr[size - 1 - i]);
}
}
// 示例数组
int main() {
int array[] = {1, 2, 3, 4, 5};
int size = sizeof(array) / sizeof(array[0]);
// 反转数组
reverseArray(array, size);
// 输出反转后的数组
for (int i = 0; i < size; ++i)
std::cout << array[i] << " ";
return 0;
}
```
这个 `reverseArray` 函数接收一个整型数组 `arr` 和它的大小 `size`,然后使用了一个简单的双指针技巧,一个指针从数组开头向后移动,另一个指针从数组末尾向前移动,直到两个指针相遇。
相关问题
在c++中,将数组中的数据逆序存放的思路
在C++中将数组中的数据逆序存放可以通过遍历数组,并将第i个元素与第n-i-1个元素进行交换的方式实现,其中n为数组的长度。
以下是将数组逆序存放的C++代码示例:
```c++
#include <iostream>
using namespace std;
void reverse(int arr[], int n) {
for (int i = 0; i < n / 2; i++) {
int temp = arr[i];
arr[i] = arr[n - i - 1];
arr[n - i - 1] = temp;
}
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
int n = sizeof(arr) / sizeof(arr[0]);
reverse(arr, n);
for (int i = 0; i < n; i++) {
cout << arr[i] << " ";
}
return 0;
}
```
其中,`reverse`函数用于将数组逆序存放,`arr`为输入的数组,`n`为数组的长度。在`reverse`函数中,使用循环遍历数组前半部分(i从0到n/2-1),并且将第i个元素与第n-i-1个元素进行交换。最终,数组中的元素就被逆序存放了。
输出结果为:`5 4 3 2 1`。
将一个字符串逆序存放在数组中并输出逆序后的字符串内容。
下是C++代码实现:
```cpp
#include <iostream>
#include <cstring>
using namespace std;
int main() {
char str[100];
cout << "请输入一个字符串:" << endl;
cin.getline(str, 100); // 使用getline()函数读取含有空格的字符串
int len = strlen(str);
char reverse_str[len];
for (int i = 0; i < len; i++) {
reverse_str[i] = str[len - i - 1]; // 逆序存放
}
cout << "逆序后的字符串为:" << endl;
cout << reverse_str << endl;
return 0;
}
```
当用户输入一个字符串后,程序会先通过`strlen()`函数获取字符串的长度,然后创建一个与原字符串等长的字符数组`reverse_str`,并在`for`循环中将原字符串逆序存放到`reverse_str`中。最后输出`reverse_str`即可。
阅读全文
相关推荐








