这个建议使用函数模版来做,例如:
#include<iostream>
using namespace std;
template<typename T> //T可以用其他字母代替
T paixu(T*a,int n) //排序函数需要两个参数,数组的首地址和元素个数
{
for(int i=0;i<n;i++){ //冒泡排序,升序
for(int j=0;j<n;j++){
if(a[i]<a[j]){
T temp=a[i];
a[i]=a[j];
a[j]=temp;}}}
for(int i=0;i<n;i++) cout<<a[i]<<endl; //输出排序后的结果
}
int main()
{
int a[5],n; //为了方便测试中就用int了
n=sizeof(a)/sizeof(int); //考虑到实际n的值可能需要计算得出
for(int i=0;i<n;i++) cin>>a[i]; //输入数组中的元素
paixu(a,n); //调用排序函数
system("pause");
}
其实最简单的解决方法是用sort函数,只需#include<algorithm>就可以了,默认升序排序。
sort(数组首地址即数组名,首地址+数组长度,排序方式)
如果不写最后的参数则默认升序排列,以上面的程序为例,可以这样写:
sort(a,a+n); //前面不要忘记头文件
这个方法很简单的
温馨提示:内容为网友见解,仅供参考