# include <iostream>
# include <cstdlib>
# include <ctime>
using namespace std;
// 为了return数组,必须定义指针函数
int* range(int *arr,int num);
//冒泡排序找最大值,为了保证普适性,其数组长度应该为输入的数组长度相同
int* range(int *arr,int num)
{
int* arr1 = new int[num];//数组动态分配
for (int k = 0; k < num; k++)
{
arr1[k] = arr[k];
}
for (int i = 0; i < num - 1; i++)
{
for (int j = 0; j < num - i - 1; j++)
{
if (arr1[j] > arr1[j + 1]) //这里要打括号
{
int temp = arr1[j];
arr1[j] = arr1[j + 1];
arr1[j + 1] = temp;
}
}
}
// 反向复制一次,并返回
for (int k = 0; k < num; k++)
{
arr[k] = arr1[num - k - 1];//反向复制需要-1,因为num下标最大为 num-1,arr下标应该是k,不是num
}
return arr;
}
int main()
{
int arr1[10];
// 随机生成一维数组
srand((int)time(NULL)); // 产生随机种子
for (int i = 0; i < 10; i++)
{
arr1[i] = rand() % 100;
}
for (int i = 0; i < 10; i++)
{
cout << arr1[i] << " ";
}
cout << endl;
// 获得排序后的数组
int* arrA;
arrA = range(arr1, 10);
for (int i = 0; i < 10; i++)
{
cout << arrA[i] << " ";
}
cout << endl;
system("pause");
return 0;
}