很久没来写总结的感觉。
上个周末好歹有时间看了看数组剩下的快要烂尾的知识点。今天做程序练习。
这个程序在完成这样一件事情:
由用户给定一个数目,而后由此申请动态空间得到相应长度的数组,由随机数函数赋值得到一组数字,之后把这组数组倒置排序。
在做倒置的时候考虑到实质是首尾互换,于是不可避免要遇到奇数偶数难同归一路的情况,那就干脆分类讨论。这个思想自己觉得很可以保留。
代码:
#include<iostream>
#include<cstdlib>
#include<ctime>
using namespace std;
void eva(int a[],int n) //随机数赋值函数
{
srand(time(NULL));
int i;
for(i=0;i<n;i++)
{
a[i]=rand();
}
}
void output(int a[],int n) //输出函数
{
int i;
for(i=0;i<n;i++)
{
cout<<a[i]<<endl;
}
}
void reverse(int a[],int n)//倒置函数
{
int i,t,j=n-1;
if(n%2==0)//偶数
{
for(i=0;i<=n/2-1;i++)
{
t=a[i];a[i]=a[j];a[j]=t;
j--;
}
}
else {
for(i=0;i<=(n-3)/2;i++)
{
t=a[i];a[i]=a[j];a[j]=t;
j--;
}
}
}
int main()
{
int n;
cin>>n;
int *p=new int[n];
eva(p,n);
output(p,n);
reverse(p,n);
cout<<endl;
output(p,n);
delete p;
}