欢迎光临
我们一直在努力

2019年CSP-X复赛真题及题解(T3:统计成绩)

2019年CSP-X复赛真题及题解(T3:统计成绩)

题目描述

n

n

n 位同学参加了期中考试,考试共有

m

m

m 门课程。

考试结束之后,老师想知道:每位同学有几门课程达到或超过了课程的班级平均分?

现在,请你帮忙统计一下。

输入格式

第一行,两个正整数

n

,

m

n,m

n,m

n

n

n 表示学生总人数,

m

m

m 表示课程数量。

接下来

n

n

n 行,每行

m

m

m 个整数,表示一位同学的成绩。

输出格式

n

n

n 行,每行一个整数,表示该同学达到或超过平均分的课程数量。

输入输出样例 1
输入 1

5 3
81 80 86
55 74 79
92 47 99
50 65 41
42 61 74

输出 1

3
2
2
0
0

说明/提示

3

3

3 门课程的平均分依次为:

64

,

65.4

,

75.79

64,65.4,75.79

64,65.4,75.79

5

5

5 位同学分别有

3

,

2

,

2

,

0

,

0

3,2,2,0,0

3,2,2,0,0 门课程达到或超过了课程平均分。

对于

100

%

100\\%

100% 的数据:

1

n

100

,

1

m

20

1\\leq n\\leq 100,1\\leq m\\leq 20

1n100,1m20,输入的成绩

w

i

,

j

w_{i,j}

wi,j 满足

0

w

i

,

j

100

0\\leq w_{i,j}\\leq 100

0wi,j100

思路分析

  • 需要先算出每一门课的班级平均分,才能判断每位同学每科是否达标。
  • 输入时用二维数组保存所有成绩,同时用一个一维数组累加每门课的总分。
  • 平均分 = 总分 ÷ 人数。为了避免浮点数比较带来的精度问题,判断单科成绩是否达到平均分时,等价判断:
    • 成绩 × 人数 ≥ 该科总分
  • 最后遍历每位同学,统计达标科目数量并输出。
  • 代码实现

    #include <bits/stdc++.h>
    using namespace std;
    int n,m;
    int a[105][25],s[25];//a存成绩,s存每科总分
    int main(){
    cin>>n>>m;//读入人数和科目数
    for(int i=1;i<=n;i++){//遍历学生
    for(int j=1;j<=m;j++){//遍历科目
    cin>>a[i][j];//读成绩
    s[j]+=a[i][j];//累加该科总分
    }
    }
    for(int i=1;i<=n;i++){//遍历每个学生
    int c=0;//达标科目数
    for(int j=1;j<=m;j++){//遍历科目
    if(a[i][j]*n>=s[j]) c++;//成绩*n>=总分即达到平均分
    }
    cout<<c<<"\\n";//输出
    }
    return 0;
    }

    功能分析

    • n 表示学生人数,m 表示科目数量。
    • 二维数组 a 存储所有同学的所有科目成绩,一维数组 s 存储每门课的总分。
    • 先读入数据并累加总分,再对每个同学逐一判断每科成绩是否达标。
    • 判断时使用整数比较 成绩 × n >= 总分,完全等价于 成绩 >= 平均分,且避免了浮点数误差。
    • 时间复杂度为 O(n*m),空间复杂度为 O(n*m)。

    更多内容请关注专栏:信奥赛C++普及组csp-j初赛&复赛真题题解(持续更新):https://blog.csdn.net/weixin_66461496/category_12808781.html 点击跳转


    【秘籍汇总】(完整csp信奥赛C++学习资料):

    1、csp/信奥赛C++,完整信奥赛系列课程(永久学习):

    https://edu.csdn.net/lecturer/7901 点击跳转

    在这里插入图片描述

    2、CSP信奥赛C++竞赛拿奖视频课:

    https://edu.csdn.net/course/detail/40437 点击跳转 在这里插入图片描述 https://edu.csdn.net/course/detail/41081 点击跳转 在这里插入图片描述

    3、csp信奥赛高频考点知识详解及案例实践:

    CSP信奥赛C++动态规划: https://blog.csdn.net/weixin_66461496/category_13096895.html点击跳转

    CSP信奥赛C++标准模板库STL: https://blog.csdn.net/weixin_66461496/category_13108077.html 点击跳转

    信奥赛C++提高组csp-s知识详解及案例实践: https://blog.csdn.net/weixin_66461496/category_13113932.html 点击跳转

    4、csp信奥赛冲刺一等奖有效刷题题解:

    信奥赛C++普及组CSP-J一等奖通关刷题题单及题解: https://blog.csdn.net/weixin_66461496/category_12673810.html 点击跳转

    信奥赛C++普及组csp-j初赛&复赛真题题解(持续更新):https://blog.csdn.net/weixin_66461496/category_12808781.html 点击跳转

    信奥赛C++提高组csp-s初赛&复赛真题题解(持续更新): https://blog.csdn.net/weixin_66461496/category_13125089.html 点击跳转

    5、GESP C++考级真题题解:

    在这里插入图片描述

    GESP(C++ 一级+二级+三级)真题题解(持续更新):https://blog.csdn.net/weixin_66461496/category_12858102.html 点击跳转

    在这里插入图片描述

    GESP(C++ 四级+五级+六级)真题题解(持续更新):https://blog.csdn.net/weixin_66461496/category_12869848.html 点击跳转

    在这里插入图片描述 GESP(C++ 七级+八级)真题题解(持续更新): https://blog.csdn.net/weixin_66461496/category_13117178.html 点击跳转

    · 文末祝福 ·

    #include<bits/stdc++.h>
    using namespace std;
    int main(){
    cout<<"跟着王老师一起学习信奥赛C++";
    cout<<" 成就更好的自己! ";
    cout<<" csp信奥赛一等奖属于你! ";
    return 0;
    }

    在这里插入图片描述

    赞(0)
    未经允许不得转载:171主机测评 » 2019年CSP-X复赛真题及题解(T3:统计成绩)
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址