用C++编写一个把有n个元素的数组a中的元素逆置保存到数组b的函数,并设计一个测试主函数进行测试
时间: 2023-04-04 17:04:26 浏览: 94
可以回答这个问题。以下是代码:
#include <stdio.h>
void reverse(int a[], int b[], int n) {
for (int i = 0; i < n; i++) {
b[i] = a[n - i - 1];
}
}
int main() {
int a[] = {1, 2, 3, 4, 5};
int b[5];
reverse(a, b, 5);
for (int i = 0; i < 5; i++) {
printf("%d ", b[i]);
}
return 0;
}
输出结果为:5 4 3 2 1
相关问题
用C++编写一个逆置数组的函数,参数为数组
在C++中,编写一个用于逆置数组的函数,你可以定义一个接受整型数组引用作为参数的函数,然后使用双指针技术来交换数组元素的位置。下面是一个简单的示例:
```cpp
#include <iostream>
// 函数声明
void reverseArray(int arr[], int start, int end);
// 主函数展示如何使用
int main() {
int myArray[5] = {1, 2, 3, 4, 5};
std::cout << "Original array: ";
for (int i : myArray) {
std::cout << i << " ";
}
std::cout << "\n";
reverseArray(myArray, 0, 4); // 调用逆序函数
std::cout << "Reversed array: ";
for (int i : myArray) {
std::cout << i << " ";
}
std::cout << "\n";
return 0;
}
// 逆序数组函数实现
void reverseArray(int arr[], int start, int end) {
while (start < end) {
// 交换arr[start]和arr[end]
int temp = arr[start];
arr[start] = arr[end];
arr[end] = temp;
// 更新指针位置
start++;
end--;
}
}
```
在这个例子中,`reverseArray`函数接受一个数组`arr`,以及起始索引`start`和结束索引`end`。当`start`小于`end`时,会一直循环交换这两个位置的元素,直到整个数组逆序。
将一个整数数组逆过来,如数组是 int x[5]=[2,6,0,1,8],编写函数将其逆序成为[8,1,0,6,2]。 函数接口定义: void reverse ( int m[ ], int n ); 这里的 n 是一个正整数,表示要访问数组的多少个成员。该函数的功能是将n个成员逆置。
可以使用双指针法,从数组两端开始遍历,将对应位置的元素交换,直到指针相遇为止。下面是一个示例实现:
```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` 函数将其逆序输出。
阅读全文