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;
    } 

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

  • 相关阅读:
    php 三元运算符简洁用法
    Linux 获取网卡信息
    《构建之法》读后感
    毫秒数据字符串转换为DateTime
    POST请求——HttpWebRequest
    多个不同类对象传输思路
    WCF 大文件传输配置
    WCF配置文件详解
    C# 元组、匿名对象、ref&out
    C#控制台关闭之前做一些操作
  • 原文地址:https://www.cnblogs.com/dddddd/p/6683389.html
Copyright © 2011-2022 走看看