1150: 零起点学算法57——程序设计竞赛

1150: 零起点学算法57——程序设计竞赛

Time Limit: 1 Sec  Memory Limit: 64 MB   64bit IO Format: %lld
Submitted: 1303  Accepted: 742
[Submit][Status][Web Board]

Description

 

每年5月份,省里都要举行程序设计竞赛。
为了让最优秀的学生去参加比赛,我们一般需要做一个选拔工作。
现在你来帮老师完成这个任务哦。

 

Input

多组测试数据,每组数据一行,该行先输入一个整数n ( n <= 30),表示参加选拔的同学人数。然后是n个整数表示选拔成绩。

 

 

Output

 

对于每组测试数据,请在一行从高到低输出他们的成绩。

 

Sample Input

 
4 2 6 7 1
3 4 10 9

 

Sample Output

7 6 2 1
10 9 4

 

Source

 
 1 #include<stdio.h>
 2 int main(){
 3     int n,a[50];
 4     while(scanf("%d",&n)!=EOF){
 5         for(int i=0;i<n;i++){
 6             scanf("%d",&a[i]);
 7         }
 8         
 9         for(int i=0;i<n-1;i++){
10             int k=i,t;
11             for(int j=i+1;j<n;j++)
12                 if(a[k]<a[j])
13                    k=j;
14             if(k!=i){
15                 t=a[i];
16                 a[i]=a[k];
17                 a[k]=t;
18             }
19         }
20         for(int i=0;i<n-1;i++)
21            printf("%d ",a[i]);
22         printf("%d\n",a[n-1]);
23     }
24     return 0;
25 }

//选择排序法!!!

 1 #include<stdio.h>
 2 int main(){
 3     int n,a[50];
 4     while(scanf("%d",&n)!=EOF){
 5         for(int i=0;i<n;i++)
 6            scanf("%d",&a[i]);
 7     
 8     int t;
 9     for(int i=1;i<n;i++){
10         for(int j=0;j<n-i;j++){
11             if(a[j]<a[j+1]){
12                 t=a[j];
13                 a[j]=a[j+1];
14                 a[j+1]=t;
15             }
16         }
17     }
18     
19     for(int i=0;i<n-1;i++){
20         printf("%d ",a[i]);
21     }
22     printf("%d\n",a[n-1]);
23     }
24     
25     return 0;
26 } 

// 冒泡排序法

#include<stdio.h>
int main(){
    int n,a[50];
    while(scanf("%d",&n)!=EOF){
        for(int i=0;i<n;i++)
           scanf("%d",&a[i]);
    
    int t;
    for(int i=1;i<n;i++){
        int flag=0;
        for(int j=0;j<n-i;j++){
            if(a[j]<a[j+1]){
                t=a[j];
                a[j]=a[j+1];
                a[j+1]=t;
                flag=1;
            }
            if(flag==0) break;
        }
    }
    
    for(int i=0;i<n-1;i++){
        printf("%d ",a[i]);
    }
    printf("%d\n",a[n-1]);
    }
    
    return 0;
} 

//冒泡排序法 (改进后的)

posted @ 2017-04-08 22:59  Dollis  阅读(1691)  评论(0编辑  收藏  举报