用C++编写一程序,输入50个数,将他们从小到大排列后输出

如题所述

#include<iostream>
using namespace std;
void main()
{
int a[50];
int i,j,t;
cout<<"输入50个整数:\n";
for(i = 0; i <50; i ++ )
cin>>a[i];
for(j = 0; j < 9; j ++ )//进行49轮排序 即50-1次
{
for( i = 0; i < 9-j; i ++) //每轮进行50-1-j 次比较,最多50-1-j 次交换
if( a[ i ] > a[ i + 1 ] )
{
t = a[ i ] ;
a[ i ] = a[ i + 1 ]; //大的沉底,小的上浮
a[ i + 1 ] = t;
}
}
cout<<"排序结果是:";
for( i = 0; i < 50; i ++ ) //依次输出排序结果
cout<<" "<<a[i];
cout<<endl;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-05-09
#include <iostream>
#define LEN 50
using namespace std;
int main(){
int nArray[LEN];
for(int i=0;i<LEN;i++)nArray[i]=LEN-i;
cout<<"原始数据为:"<<endl;
for(int i=0;i<LEN;i++)cout<<nArray[i]<<" ";
cout<<endl;
//开始冒泡
{
int temp;
for(int i=LEN-1;i>0;i--)
for(int j=0;j<i;j++){
if(nArray[j]>nArray[j+1]){
temp=nArray[j];
nArray[j]=nArray[j+1];
nArray[j+1]=temp;
}
}
}
//结束冒泡
cout<<"排序结果:"<<endl;
for(int i=0;i<LEN;i++)cout<<nArray[i]<<" ";
return 0;
}
第2个回答  2010-05-09
#include<iostream>
using namespace std;
void main()
{
int buffer;
int a[50];
for(int i=0;i<50;i++)
{
cin>>a[i];
}
for(int i=0;i<49;i++)
for(j=i;j<49-i;j++)
{
if(a[j]>a[j+1])
{
buffer=a[j];
a[j]=a[j+1];
a[j+1]=buffer;
}
}
for(int i=0;i<50;i++)
{
if(i!=0&&(i%5==0))cout<<endl;
cout<<a[i];
}

}
第3个回答  2010-05-09
#include <algorithm>
#include <iostream>

using namespace std;

int main()
{
int arry[50],i=0;
cout<<"shu ru shu zi"<<endl; //输入数字
for(i=0;i<50;i++)
{cin>>arry[i];}
sort(arry,arry+50); //排序
for(i=0;i<50;i++);
{cout<<arry[i]<<endl;}
}
第4个回答  2010-05-09
#include<iostream>
#include<iomanip>
#include<ctime>
using namespace std;
//快排

void quicksort(long a[],long f,long l)
{
long mid,tmp,i,j,random;
srand((unsigned)time(NULL));
random=int(rand()%(l-f))+f;
mid=a[random];
i=f;j=l;

do
{
while(a[i]<mid) i++;
while(a[j]>mid) j--;
if(i>j) break;
if(a[i]>=a[j]) {tmp=a[i];a[i]=a[j];a[j]=tmp;i++;j--;}
}while(i<=j);

if(i<l) quicksort(a,i,l);
if(j>f) quicksort(a,f,j);
}

int main()
{
long n,i,a[110];
cin>>n;
for(i=1;i<=n;i++)
cin>>a[i];

quicksort(a,1,n);

for(i=1;i<=n;i++)
cout<<a[i]<<" ";

}
第5个回答  2010-05-09
// 用C++编写一程序,输入50个数,将他们从小到大排列后输出
// http://www.wxw12345.cn

#include <vector>
#include <iostream>
#include <algorithm>

using namespace std;

// 欲排序的数字个数 为了方便调试 可定义为一个比较小的数
#define NUM 50

// 欲排序的数字类型
#define TYPE double

int main()
{
vector <TYPE> ivector;
int i=0;
TYPE dTmp=0;
cout<<"请依次输入"<<NUM<<"个欲排序数:"<<endl;
for (i=0; i<NUM; i++)
{
cin>>dTmp;
ivector.push_back(dTmp);
}

// 升序排序
sort(ivector.begin(),ivector.end());

cout<<"排序后结果如下:"<<endl;
// 输出
copy(ivector.begin(),ivector.end(),ostream_iterator<TYPE>(cout," "));
cout<<endl;

return 0;
}

参考资料:http://www.wxw12345.cn