牛客网——争夺前五名

简介: 牛客网——争夺前五名

前言


今天我们来说一下数组的简单应用。

一、争夺前五名


题目来源:

争夺前五名_牛客题霸_牛客网

描述


期中考试开始了,大家都想取得好成绩,争夺前五名。从键盘输入 n 个学生成绩,输出每组排在前五高的成绩。

数据范围:5≤n≤50  ,成绩采取百分制并不会出现负数

输入描述:


两行,第一行输入一个整数,表示n个学生(>=5),第二行输入n个学生成绩(整数表示,范围0~100),用空格分隔。

输出描述:


一行,输出成绩最高的前五个,用空格分隔。

二、解题过程


1.分析问题


题目的关键在于,多组输入后怎么比较大小,这时我们就要用到数组了,把所有数字装数组里,再比较大小,把数组里的数按大小排好序,再按顺序输出。

2.代码如下


#include<stdio.h>
int main(){
    int n,a,max=0;
    scanf("%d\n",&n); //输入n,表示数组大小。
    int c[n]; //用n初始数组
        for(int i=0;i<n;i++){
            scanf("%d",&c[i]); //遍历输入
        }
    for(int j=0;j<n;j++){           
        for(int k=j+1;k<n;k++){       //k=j+1,表示数组后一位和前一位比较
            if(c[j]<c[k]){    
                max=c[j];               //准备换位置,大在前,小在后,方便后面输出
                c[j]=c[k];    //先赋值给max,作为中间量,然后把前一位的量改为后一位的量
                c[k]=max;        //后一位的量变成前一位的,用max来传递。
            }
        }
    }
        for(int w=0;w<5;w++){        //拍好大小后,挨个输出五个
            printf("%d ",c[w]);
        }
    return 0;
}

问题的核心有两个:

1、用两个循环来让数组一前一后比较大小。

2、通过赋值来把两个值交换。max这个中间量一定不能少!没有中间量,在前一位赋值为位一个之后,前一位原来的值就找不回来了,这时后一位就不能赋值为前一位了。

总结


以上就是今天要讲的内容,本文仅仅简单介绍了数组基本排列的问题,希望对大家有帮助~

相关文章
|
6月前
|
Java 调度
揭秘!线程的一生竟然如此‘波折’?从新生到消逝,看它们如何在职场(JVM)中奋斗与挣扎!
【8月更文挑战第24天】在软件开发尤其是多线程编程及面试中,掌握线程的生命周期至关重要。线程的生命周期包含五个关键阶段:新建(New)、就绪(Runnable)、运行(Running)、阻塞(Blocked)以及死亡(Dead)。新建阶段是指通过`new`关键字创建线程对象;调用`start()`方法后进入就绪状态,等待CPU调度;获得CPU资源后进入运行状态并执行`run()`方法;因I/O操作等原因暂停执行进入阻塞状态;运行完毕或因异常退出`run()`方法后进入死亡状态。理解这些状态及其转换有助于编写高效稳定的多线程程序。
44 1
|
安全 Java 数据库连接
ThreadLocal Java多线程下的影分身之术
后来,我把c删掉,变成了下面这样。如果我现在想查h,按照上面getEntry的逻辑,是不是遍历到3就停了,所以找不到h了? getEntry的逻辑表面确实是这样,但实际上getEntryAfterMiss、remove、gets时都会直接或者间接调用expungeStaleEntry会对表里的数据做整理。expungeStaleEntry()除了利用弱引用的特性对tab中Entry做清理外,还会对之前Hash冲突导致后移的Entry重新安放位置。所以不可能出现下面这种tab排放的。
41 0
|
缓存 安全 Java
Java并发编程必知必会面试连环炮
Java并发编程必知必会面试连环炮
170 0
|
Web App开发 前端开发 JavaScript
冬奥快结束了还没有抢到冰墩墩?程序员一招让你不用排队不用愁!
随着“2022北京冬奥会”的盛大开幕,冰墩墩的热度与日俱增,线上被抢空,线下排长龙,为购买冰墩墩苦恼的竟少了几根秀发!如今冬奥马上就要拉下帷幕,还没抢到“冰墩墩”不要紧,这款程序来帮忙,国内一位程序员dragonir用前端+建模的方式自己就实现了线上拥有“冰墩墩”,同时将代码开源到了GitHub上,不得不感叹科技的力量,程序员的伟大,让拥有“冰墩墩”变得如此简单!
冬奥快结束了还没有抢到冰墩墩?程序员一招让你不用排队不用愁!
|
存储 Java 程序员
一个线程的打工故事
一个线程的打工故事
127 0
深夜!小胖问我,什么是自旋锁?怎么使用?适用场景是啥?
深夜!小胖问我,什么是自旋锁?怎么使用?适用场景是啥?
深夜!小胖问我,什么是自旋锁?怎么使用?适用场景是啥?
|
缓存 安全 前端开发
今天520,要及时「缓存」你们的珍贵时光。(一)
在很久很久以前人类和洪水作斗争的过程中,水库发挥了至关重要的作用 : 在发洪水时可以蓄水,缓解洪水对下游的冲击;在干旱时可以把库存的水释放出来以供人们使用。这里的水库就起着缓存的作用。在如今互联网的世界里随着互联网的普及,内容信息越来越复杂,用户数和访问量越来越大,我们的应用需要支撑更多的并发量,同时我们的应用服务器和数据库服务器所做的计算也越来越多。
今天520,要及时「缓存」你们的珍贵时光。(一)
|
存储 前端开发 JavaScript
【offer 收割计划】这几道常见的面试题,你会几道
【offer 收割计划】这几道常见的面试题,你会几道
100 0
【offer 收割计划】这几道常见的面试题,你会几道
|
算法 前端开发 搜索推荐
学编程的 3 个正经建议,学弟学妹们记得收藏呀,这波赚大发了!
学编程的 3 个正经建议,学弟学妹们记得收藏呀,这波赚大发了!
165 0