将一个整数数组逆过来,如数组是 int x[5]=[2,6,0,1,8],编写函数将其逆序成为[8,1,0,6,2]。 函数接口定义: void reverse ( int m[ ], int n ); 这里的 n 是一个正整数,表示要访问数组的多少个成员。该函数的功能是将n个成员逆置。
时间: 2024-02-28 19:53:42 浏览: 264
可以使用双指针法,从数组两端开始遍历,将对应位置的元素交换,直到指针相遇为止。下面是一个示例实现:
```c++
#include <iostream>
using namespace std;
void reverse(int m[], int n) {
int i = 0, j = n - 1;
while (i < j) {
int temp = m[i];
m[i] = m[j];
m[j] = temp;
i++;
j--;
}
}
int main() {
int x[5] = {2, 6, 0, 1, 8};
reverse(x, 5);
for (int i = 0; i < 5; i++) {
cout << x[i] << " ";
}
cout << endl;
return 0;
}
```
在 `reverse` 函数中,使用双指针 i 和 j,分别指向数组的第一个元素和最后一个元素。然后循环交换 i 和 j 指向的元素,并将 i 向后移动一位,j 向前移动一位,直到 i >= j 为止。
在主函数中,声明一个数组 x,调用 `reverse` 函数将其逆序输出。
相关问题
将一个整数数组逆过来,如数组是 int x[5]=[2,6,0,1,8],编写函数将其逆序成为[8,1,0,6,2]。
我可以帮你解决这个问题。以下是一个 C++ 函数实现:
```cpp
void reverseArray(int arr[], int n) {
int left = 0, right = n - 1;
while (left < right) {
int temp = arr[left];
arr[left++] = arr[right];
arr[right--] = temp;
}
}
```
你可以在主程序中定义一个整数数组,并传递给这个函数进行逆序操作:
```cpp
int main() {
int x[5] = {2, 6, 0, 1, 8};
reverseArray(x, 5);
for (int i = 0; i < 5; i++) {
cout << x[i] << " ";
}
cout << endl;
return 0;
}
```
输出为:8 1 0 6 2。
希望能对你有所帮助。
将一个整数数组逆过来,如数组是 int x[5]=[2,6,0,1,8],编写函数将其逆序成为[8,1,0,6,2]。 函数接口定义: void reverse ( int m[ ], int n );
好的,我的回答如下:
可以使用两个指针分别指向数组的首尾元素,交换它们的值,然后两个指针向中间移动,直到它们相遇。这样就可以将数组逆序。
具体实现代码如下:
```cpp
void reverse(int m[], int n) {
int i = 0, j = n - 1;
while (i < j) {
int temp = m[i];
m[i] = m[j];
m[j] = temp;
i++;
j--;
}
}
```
在这个函数中,`m`是整数数组,`n`是数组的长度。函数的实现思路就是上面所说的指针交换。
阅读全文