题目
编写程序, 按照指定长度生成动态数组, 用随机数对数组元素进行赋值, 然后逆置该数组元素。例如,数组A的初值为{6,3,7,8,2}, 逆置后的值为{2,8,7,3,6}。
要求: 输出逆置前、后的数组元素序列。
分析
根据题意,将实现分为几个步骤:
- 生成随机数组
- 输出原始数组
- 逆置数组
- 输出逆置后的数组
知识
- rand()和srand()要一起使用,其中srand()用来初始化随机数种子,rand()用来产生随机数。
- 要取得[a,b)的随机整数,使用(rand() % (b-a))+ a (结果值含a不含b)。
要取得[a,b]的随机整数,使用(rand() % (b-a+1))+ a (结果值含a和b)。
要取得(a,b]的随机整数,使用(rand() % (b-a))+ a + 1 (结果值不含a含b)。
代码
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
void resort(int arry[],int size){
int star=0;
int end=size-1;
while(end>star){
int temp=arry[star];
arry[star]=arry[end];
arry[end]=temp;
star++;
end--;
}
}
int main(){
int size;
cout<<"请输入数组长度:";
cin>>size;
srand(time(0));
int* array = new int[size];
for(int i=0;i<size;i++){
array[i] = rand() % 1000;
}
cout<<"生成的数组为:"<<endl;
for(int i=0;i<size;i++){
cout<<array[i]<<" ";
}
cout<<endl;
resort(array, size);
cout<<"倒序后数组为:"<<endl;
for(int i=0;i<size;i++){
cout<<array[i]<<" ";
}
cout<<endl;
}