【蓝桥杯C++练习】每日一练01-编程题

【编程实现】

蓝桥杯 STEMA 测评,成绩排名与证书的对应关系如下:

排名     奖项等级
前 10% 一等奖
前 30% 二等奖
前 60% 三等奖
前 80% 优秀奖


已知小蓝同学的成绩及其他所有考生的成绩,你能帮助小蓝计算一下他能获得的奖项等级吗?
输入:
第一行为一个整数 score,(0≤score≤100)代表小蓝的成绩。
第二行为一个整数 n,(10≤n≤1000)代表参加测评的总人数。
第三行为n 个整数,每个整数代表每个参加测评考生的成绩,中间用空格分
隔,成绩范围同 score。输出:
A、B、C、D、E 五个字母,分别代表一、二、三等奖,优秀奖及未获奖。注意:分数相同则等级相同,后续选手排名顺延。
【结果样例】
样例输入:
95
10
99 95 90 99 80 70 71 78 77 60
样例输出:
B


样例说明:小蓝在 10 名参赛选手中排名第 3,属于前 30%,故获得二等奖,
所以输出 B。另,两名 99 分的选手由于分数相同,所以并列一等奖。


【评分标准】(考试系统内置本题目的四组测试用例,从最为普通情况的用例一到相对极端情况的用例四;每个用例通过得分不同,本题合计 25 计分点)
3 分:检测通过第一组测试用例;
5 分:检测通过第二组测试用例;
7 分:检测通过第三组测试用例;
10 分:检测通过第四组测试用例。  分值5分

//答案

#include<iostream>
using namespace std;
int main(){
    int score,n,s[1005],temp;
    cin>>score>>n;
    for(int i=0;i<n;i++)
        cin>> s[i];
    //简单排序一下,这里用冒泡排序
    for(int i=0;i<n-1;i++){
        for(int j=0;j<n-i-1;j++){
            if(s[j]<s[j+1]){
                temp=s[j];
                s[j]=s[j+1];
                s[j+1]=temp;
            }
        }
    }
    //排好序的数组从前往后查找看是第几个,计算百分比
    for(int i=0;i<n;i++){
        if(s[i]==score){
            temp=i;
            break;
        }
    }
    //找到后计算排名百分比
    double pm=(double)(temp+1)/n;
    if(pm<=1.0){
        cout<<'A';
    }else if(pm<=3.0){
        cout<<'B';
    }else if(pm<=6.0){
        cout<<'C';
    }else if(pm<=8.0){
        cout<<'D';
    }else{
        cout<<'E';
    }

    return 0;
}

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

【ACGO】我不会C++

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值