• 全国高校程序设计大赛 评定奖学金


    全国高校程序设计大赛 评定奖学金

    题目描述

    评定奖学金。 奖学金评比方法如下:先计算加权成绩formula.jpg,其中k为课程数,
    然后按照加权成绩排序(规定所有同学的加权成绩各不相同),根据学生的数量取前10%的同学获得一等奖学金(获奖人数向上取整),输出一等奖学金的学生姓名。
    按照下面的顺序输入相关信息:
    (1) 输入课程数k (k<10) ;
    (2) 依次输入k个数据表示ki ]课程所对应的学分;
    (3) 输入学生数量N(N<100);
    (4) 从第四行开始依次输入N个学生的信息(信息格式:姓名及对应的各i ]课的成绩)。
    输入说明:
    第一行输入整数k;
    第二行依次输入k个数据;
    第三行输入一个整数N;
    从第四行开始依次输入N名同学的成绩数据
    (数据格式:姓名K门课的整数成绩)输出说明:输出获一等奖的学生姓名,有多名同学则用单个空格隔
    开。输入样例:5 2.0 1.0 2.0 3.0 0.5 5 XM 75 90 80 80 90 ZB 65 80 70 70 85 XH 70 80 70 75 90 WJ 80 85 85 85 90 LH 80 90 90 80 85
    输出样例:WJ

    代码提交说明

    代码提交说明:
    1.请严格按照每道题目给出的输入/输出样例编写相关I/O代码,数字间的默认间隔是一个空格, 浮点数的默认输出精度是保持小数点后2位。样例以外的提示信息请不要在屏幕上输出。
    2.请大家确保提交的代码可以在指定的编译条件下正确地编译执行,否则自动评测程序将给出编译错误或运行时错误的信息。
    3.每道编程题目,如果没有特殊说明,需要在1秒内完成程序的运行和输出结果,超过这个时间限制将会被判超时,失去相应测试用例的分数。每个可执行文件可使用的空间不得大于1MB。
    4.每道编程题会有多个测试用例,每通过一些测试用例可以获得 相应的分值,只有通过全部测试用例才能拿到这题全部的分数。

    题目思路

    #include<iostream>
    #include<string>
    #include<algorithm>
    using namespace std;
    
    const int N = 100 + 10;
    double a[N];
    
    struct stu {
        string name;
        double score[10];
        double total = 0;
    }stu[100];
    
    bool cmp(struct stu s1, struct stu s2)
    {
        if(s1.total<s2.total)
            return false;
        return true;
    }
    
    int main()
    {
        int k, n;
        cin >> k;
        for (int i = 0; i < k; i++)
        {
            cin >> a[i];
        }
        cin >> n;
        double sum = 0;
        for (int i = 0; i < n; i++)
        {
            cin >> stu[i].name;
            for (int j = 0,sum = 0; j < k; j++)
            {
                cin >> stu[i].score[j];
                stu[i].score[j] = stu[i].score[j] * a[j];
                stu[i].total += stu[i].score[j];
            }
        }
        sort(stu, stu + n, cmp);
        cout << stu[0].name;
        int i = 0;
        for (i = 1; i<=n/10; i++)
        {
            cout << " " << stu[i].total;
        }
        if(i<n&&i>0)
            while (stu[i].total == stu[i - 1].total && i < n) {
                cout << " " << stu[i++].total;
            }
        return 0;
    }
    
  • 相关阅读:
    wex5 实战 框架拓展之2 事件派发与data刷新
    wex5 实战 框架拓展之1 公共data组件(Data)
    wex5 实战 HeidiSQL 导入Excel数据
    wex5 实战 手指触屏插件 hammer的集成与优劣
    wex5 实战 登陆帐号更换与用户id一致性
    wex5 实战 用户点评与提交设计技巧
    wex5 实战 省市县三级联动与地址薄同步
    wex5 实战 wex5与js的组件关系与执行顺序(父子与先后)
    wex5 实战 单页模式下的多页面数据同步
    [BZOJ]4237: 稻草人
  • 原文地址:https://www.cnblogs.com/fsh001/p/13997226.html
Copyright © 2020-2023  润新知