利用容器
假设输入四个整数,要求从大到小输出。则用前三个依次和最后一个数字比较,将最小值放到末位。再用前两个数字与第三个数字比较,将次小值放到第三位,依次类推,程序如下。
#include<iostream>
#include<vector>
using namespace std;
int main()
{
vector<int>T;
int N,a,b,c,d,m;
cout<<"Please enter four numbers:"<<'\0';
while(cin>>N)
{
T.push_back(N);
if(cin.get()=='\n')
break;
}
d=T[T.size()-1];
for(int i=0;i<4;i++)
{
if(T[i]<d)
{
m=d;
d=T[i];
T[i]=m;
}
}
c=T[T.size()-2];
for(int i=0;i<3;i++)
{
if(T[i]<c)
{
m=c;
c=T[i];
T[i]=m;
}
}
b=T[T.size()-3];
for(int i=0;i<2;i++)
{
if(T[i]<b)
{
m=b;
b=T[i];
T[i]=m;
}
}
a=T[T.size()-4];
cout<<a<<'\0'<<b<<'\0'<<c<<'\0'<<d<<endl;
return 0;
}
但是如果输入的数字多了,这种方法很麻烦,因此要用指针排序,指针排序简单方法正在摸索。