1674:前10名
Description
算法提高 前10名
时间限制:1.0s 内存限制:256.0MB
问题描述
数据很多 但我们经常只取前几名,比如奥运只取前3名,现在我们有n 个数据,请按从大到小的顺序,输出前10名数据。
输出格式:
两行。
第一行一个整数n ,表示要对多少个数据。
第二行 有n 个整数,中间用空格分割,表示n 个数据。
输出格式:
一行,按从大到小排列的前10个 数据,每个数据之间用一个空格隔开。
样例输入
26
54 27 87 16 63 40 40 22 61 6 57 70 0 42 11 50 13 5 56 7 8 86 56 91 68 59
样例输出
91 87 86 70 68 63 61 59 57 56
数据规模和约定
10<=n<=200,各个整数不超过整型范围。
#include<iostream>
using namespace std;
int main()
{
int a[10000],n,i,temp,index,j;
cin>>n;
for(i=0;i<n;i++)
cin>>a[i];
for(i=0;i<n-1;i++)
{
index=i;
for(j=i+1;j<n;j++)
{
if(a[j]>a[index])
index=j;
}
if(i!=index)
{
temp=a[index];a[index]=a[i];a[i]=temp;
}
}
cout<<a[0];
for(i=1;i<10;i++)
cout<<" "<<a[i];
return 0;
}