算法提高 前10名 C语言
描述:
数据很多,但我们经常只取前几名,比如奥运只取前3名。现在我们有n个数据,请按从大到小的顺序,输出前10个名数据。
输入:
输入描述:
两行。
第一行一个整数n,表示要对多少个数据
第二行有n个整数,中间用空格分隔。表示n个数据。
输入样例:
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
输出:
输出描述:
一行,按从大到小排列的前10个数据,每个数据之间用一个空格隔开。
输出样例:
91 87 86 70 68 63 61 59 57 56
提示:
HINT:时间限制:1.0s 内存限制:256.0MB 10<=n<=200,各个整数不超出整型范围
来源:
蓝桥杯练习系统 ID: 342 原题链接: http://lx.lanqiao.cn/problem.page?gpid=T342
代码如下:
#include <stdio.h>
#define N 100000
int main() {
int i,j,n,a[N],t;
scanf("%d",&n);
for(i=0; i<n; i++)
scanf("%d",&a[i]);
for(i=0; i<(n-1); i++){
for(j=0; j<n-i-1; j++) {
if(a[j]<a[j+1]) {
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}
for(i=0; i<10; i++)
printf("%d ",a[i]);
return 0;
}