编写程序,按照指定长度生成动态数组,用随机数对数组元素进行赋值,然后逆置该数组元素。例如,数组A的初值为{12, 23, 3, 8,10},逆置后的值为{10, 8, 3, 23, 12}。程序的一次运行如下所示,请补充void adverse(int *p,int n)函数的定义,使程序完整。 c++
时间: 2024-01-22 21:20:16 浏览: 71
将一个数组逆置的C++实现
以下是完整程序,包括adverse函数的定义:
```c++
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
void adverse(int *p, int n);
int main()
{
int n;
cout << "请输入数组长度:";
cin >> n;
// 生成动态数组
int *arr = new int[n];
// 随机赋值
srand(time(NULL));
for (int i = 0; i < n; i++)
{
arr[i] = rand() % 100;
cout << arr[i] << " ";
}
cout << endl;
// 逆置
adverse(arr, n);
// 输出逆置后的数组
for (int i = 0; i < n; i++)
{
cout << arr[i] << " ";
}
cout << endl;
// 释放动态数组
delete[] arr;
return 0;
}
void adverse(int *p, int n)
{
for (int i = 0; i < n / 2; i++)
{
int temp = p[i];
p[i] = p[n - i - 1];
p[n - i - 1] = temp;
}
}
```
adverse函数的实现思路是:从左到右遍历数组,将第i个元素和第n-i-1个元素交换位置。需要注意的是,循环次数只需要遍历数组长度的一半即可,否则会重复交换。
阅读全文