C语言 · 前10名

算法提高 前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,各个整数不超出整型范围
 
常见的排序问题,用一般的冒泡,选择排序等都可以解决。
 1 #include<stdio.h>
 2 main(){
 3     int N;
 4     scanf("%d",&N);
 5     int a[N];
 6     for(int i=0;i<N;i++){
 7         scanf("%d",&a[i]);
 8     }
 9     /*冒泡*/
10     for(int i=0; i<N-1; i++){
11         for(int j=0; j<N-1-i; j++){
12             if(a[j]<a[j+1]){
13                 int t = a[j];
14                 a[j] = a[j+1];
15                 a[j+1] = t;
16             }
17         }
18     }
19     /*输出*/
20     for(int i=0; i<10; i++){
21         printf("%d ", a[i]);
22     }
23 }

 

posted @ 2017-03-04 15:13  人间烟火地三鲜  阅读(490)  评论(0编辑  收藏  举报