问题标题: 成绩统计(score)

0
0
王臻宇
王臻宇
修练者
修练者

题目描述

期末考试结束了,学校已批改完所有试卷,已知某年级共有 n 位学生和他们对应的成绩。老师们想知道这个年级学生成绩的分布情况,以便下学期更好的开展教学,因此现在需要统计一些数据如下:

1)全校最低分、最高分的成绩及人数;

2)同分最多的成绩和人数,如果相同,依次由低分到高分输出;

3)分值 p 和 q 之间(包含 p 和 q)人数。

请同学们编程帮忙统计吧。

输入格式

输入数据共 3 行:

第一行:一个整数 n,表示学校某年级总人数;

第二行:共有 n 个由空格分隔的正整数,表示每一位学生成绩。

第三行:共有 2 个由空格分隔的正整数 p 和 q。

输出格式

共 4 行:

第一行 :2 个由空格分隔的正整数,对应最低的成绩及人数;

第二行 :2 个由空格分隔的正整数,对应最高的成绩及人数;

第三行:多个由空格分隔的正整数,对应多个相同分数最多的成绩及人数。

第 4 行 :1 个正整数,对应成绩 p 和 q 之间人数。

输入输出样列

输入样例1:

 
11 80 85 80 78 90 95 95 80 98 78 95 85 95

输出样例1:

 
78 2 98 1 80 3 95 3 5

说明

数据范围:1 ≤ 学生人数 n ≤ 10000,0 ≤ 每个学生成绩 ≤ 500

【耗时限制】1000ms 【内存限制】128MB


0
0
王文博
王文博
缔造者之神
缔造者之神

下次问问题记得发个题号

核心:

for(int j=1;j<=n;j++)
        {
            cin>>a;
            maxn=max(maxn,a);
            sum+=a;
            if(a<p)
            {
                cnt1++;
            }
            if(a>q)
            {
                cnt2++;
            }
        }

 

0
朱小川
朱小川
缔造者
缔造者

for(int i=1;i<=n;i++){ cin>>a[i]; t[a[i]]++; maxn=max(maxn,a[i]); minn=min(minn,a[i]); } cin>>p>>q; for(int i=1;i<=n;i++){ if(a[i]==maxn) maxnn++; if(a[i]==minn) minnn++; } cout<<minn<<" "<<minnn<<"\n"<<maxn<<" "<<maxnn<<"\n"; for(int i=0;i<=500;i++){ if(t[i]>maxi){ maxi=t[i]; } } for(int i=0;i<=500;i++){ if(t[i]==maxi){ cout<<i<<" "<<t[i]<<" "; } } for(int i=0;i<=n;i++){ if(a[i]>=p&&a[i]<=q){ cnt++; } } cout<<"\n"<<cnt;

0
0
王臻宇
王臻宇
修练者
修练者

哦,对了,输出有换行:

78 2
98 1
80 3 95 3
5

哦,输入也有:

11
80 85 80 78 90 95 95 80 98 78 95
85 95
0
0
陶笛龙
陶笛龙
中级守护
中级守护

通知通知

谁敢采纳,我就举报

0
0
姚天宇
姚天宇
高级光能
高级光能

谁挖坟啊!!!!!!!!!!!!!!!!!!!!!!!!!

0
我要回答