zoukankan      html  css  js  c++  java
  • 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
    ",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
    ",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
    ",a[n-1]);
        }
        
        return 0;
    } 

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

  • 相关阅读:
    BAT脚本编写要点(1)_特殊字符
    开源爬虫软件汇总
    使用Gradle发布项目到JCenter仓库
    解决Android中,禁止ScrollView内的控件改变之后自动滚动
    理解RESTful架构
    一种为 Apk 动态写入信息的方案
    Proguard配置注解
    使用statsvn统计svn中的代码量
    android如何释放图片缓存
    Git命令参考手册(文本版)
  • 原文地址:https://www.cnblogs.com/dddddd/p/6683389.html
Copyright © 2011-2022 走看看