#include <iostream.h>
#define len 5
//这里设定要排序数字的个数
void swap(int &x,int &y);
bool compare(const int x,const int y);
void main()
{
int numArray[len];
for(int k=0;k<len;k++)
numArray[k]=0;
cout<<"请输入要排序的数字,以空格分隔!"<<endl;
for(int i=0;i<len;i++)//输入规定个数的数字
{
int temp;
cin>>temp;
numArray[i]=temp;
}
for(int l=len;l>1;l--)//每次从数组种找出一个最大的数字,只需要找N-1次
{
static int lenn=len;
for(int j=0;j<lenn;j++)
{
if(compare(numArray[j],numArray[j+1]))
swap(numArray[j],numArray[j+1]);
}
lenn--;//每次找出一个最大的数之后,只需要从前面的数中再找一个最大的就行,所以减一
}
for(int n=0;n<len;n++)//完整输出数组中排序后的数字
cout<<numArray[n]<<" ";
cout<<endl;
}
void swap(int &x,int &y)
{
int temp;
temp=x;
x=y;
y=temp;
}
bool compare(const int x,const int y)
{
if(x>y)
return true;
else
return false;
}
这个程序也是我自己以前琢磨的,只是达到了排序的目的,算法很烂了,高手莫笑我
不过这种算法网上应该有很多,搜一下