1 条题解

  • 0
    @ 2025-3-12 17:58:07
    #include <bits/stdc++.h>
    using namespace std;
    int n;                 // 总人数
    string xm[105];        // 每个人的姓名
    int qm[105], bj[105];  // 每个人的期末成绩、班级成绩
    char gb[105], xb[105]; // 是否是学生干部、西部省份
    int lw[105];           // 论文数量
    int jxj[105];          // 奖学金数量
    int main()
    {
        cin >> n;
        for (int i = 1; i <= n; i++)
        {
            cin >> xm[i] >> qm[i] >> bj[i] >>
                gb[i] >> xb[i] >> lw[i];
            jxj[i] = 0;
            if (qm[i] > 80 && lw[i] >= 1)
                jxj[i] += 8000;
            if (qm[i] > 85 && bj[i] > 80)
                jxj[i] += 4000;
            if (qm[i] > 90)
                jxj[i] += 2000;
            if (qm[i] > 85 && xb[i] == 'Y')
                jxj[i] += 1000;
            if (bj[i] > 80 && gb[i] == 'Y')
                jxj[i] += 850;
        }
        int ansMax = 1; // 一开始认为第一个人奖学金最高
        int sum = 0;
        for (int i = 1; i <= n; i++)
        {
            if (jxj[i] > jxj[ansMax])
                ansMax = i;
            sum += jxj[i];
        }
        cout << xm[ansMax] << "\n";
        cout << jxj[ansMax] << "\n";
        cout << sum;
        return 0;
    }
    

    #include <iostream>
    using namespace std;
    struct st
    {
        string name;//姓名 
        int qm, bj;//期末、班级评议 
        char gb, west;//干部、西部 
        int lw;//论文 
    };
    st s[101]; //s[0]~s[100] 都是一个 st 类型的变量 
    
    int main()
    {
        int n;
        // 谁获得了最多奖学金,获得了多少,总奖学金 
    	int maxi, maxx = 0, total = 0;
        cin >> n;
        for (int i = 1; i <= n; i++)
        {
            cin >> s[i].name >> s[i].qm >> s[i].bj >> s[i].gb >> s[i].west >> s[i].lw;
            int sum = 0;//计算第 i 位同学获得的奖学金 
            if (s[i].qm > 80 && s[i].lw >= 1)
                sum += 8000;
            if (s[i].qm > 85 && s[i].bj > 80)
                sum += 4000;
            if (s[i].qm > 90)
                sum += 2000;
            if (s[i].west == 'Y' && s[i].qm > 85)
                sum += 1000;
            if (s[i].gb == 'Y' && s[i].bj > 80)
                sum += 850;
            if (maxx < sum)
                maxx = sum, maxi = i;
            total += sum;
        }
        cout << s[maxi].name << "\n"
             << maxx << "\n" 
             << total;
        return 0;
    }
    
    
    • 1

    信息

    ID
    1223
    时间
    1000ms
    内存
    125MiB
    难度
    4
    标签
    递交数
    100
    已通过
    47
    上传者