用C++编写一个函数,实现数组中元素逆序
时间: 2023-03-15 16:33:30 浏览: 226
可以使用以下代码实现:
```
void reverseArray(int arr[], int n)
{
int i, temp;
for (i = 0; i < n / 2; i++)
{
temp = arr[i];
arr[i] = arr[n - i - 1];
arr[n - i - 1] = temp;
}
}
```
相关问题
用C++编写一个函数,实现数组中元素逆序,要求用到指针
可以这样实现: void reverseArray(int *a, int len) {
int *left = a;
int *right = a + len - 1;
while (left < right) {
int temp = *left;
*left = *right;
*right = temp;
left++;
right--;
}
}
设计一个函数模板reverse,用于对一个一维数组元素实现逆序
好的,我来设计一个函数模板reverse,实现对一个一维数组元素的逆序操作。可以使用C++标准库中的algorithm头文件中的reverse函数,也可以手动编写一个reverse函数。
方法一:使用algorithm头文件中的reverse函数
```
#include <algorithm>
using namespace std;
template<typename T>
void reverse(T arr[], int size){
reverse(arr, arr + size);
}
```
这个函数模板中,使用了algorithm头文件中的reverse函数,将数组arr中的元素进行逆序操作。需要注意的是,这里的reverse函数需要两个参数,分别是数组的起始地址和终止地址,因此需要使用arr和arr+size来作为函数的参数。
方法二:手动编写一个reverse函数
```
template<typename T>
void reverse(T arr[], int size){
for(int i=0; i<size/2; i++){
T temp = arr[i];
arr[i] = arr[size-i-1];
arr[size-i-1] = temp;
}
}
```
这个函数模板中,使用了一个for循环来实现逆序操作。循环次数为数组大小的一半,每次循环都交换数组中对称的两个元素,直到循环结束为止。
在主函数中,我们可以使用这个函数模板对一个一维数组进行逆序操作,如下所示:
```
int main(){
int arr1[] = {1, 2, 3, 4, 5};
char arr2[] = {'a', 'b', 'c', 'd', 'e'};
reverse(arr1, 5); // 对int类型的数组进行逆序操作
for(int i=0; i<5; i++)
cout << arr1[i] << " "; // 输出:5 4 3 2 1
cout << endl;
reverse(arr2, 5); // 对char类型的数组进行逆序操作
for(int i=0; i<5; i++)
cout << arr2[i] << " "; // 输出:e d c b a
cout << endl;
return 0;
}
```
在这个示例中,我们分别对一个int类型的数组和一个char类型的数组进行了逆序操作,并输出了结果。