描述
四年级二班女同学在体育课上进行了一轮仰卧起坐测试。成绩计算表如下。
一分钟内做仰卧起坐的个数 成绩
<20个 F
20~29个 E
30~39个 D
40~49个 C
50~59个 B
如果>=60个A
请从键盘读入 nn 位同学的在一分钟内做仰卧起坐的数量,计算出每个成绩区间的人数,按照人数降序排序,如果有多个成绩区间人数一样多,那么先输出成绩较好的区间。
输入描述
第一是一个整数n代表同学的人数(n<=100),第二行是n个同学一分钟完成仰卧起坐的数量。
输出描述
输出 6 行为 6 个成绩区间的人数,每行按照“成绩 : 人数”的格式输出,按照人数降序输出。
用例输入 1
10 19 18 17 20 21 28 30 45 48 51
用例输出 1
E:3 F:3 C:2 B:1 D:1 A:0
#include<bits/stdc++.h>
using namespace std;
int n,a[105],x,b[105];
int main(){
cin>>n;
for(int i=0; i<n; i++)
{
cin>>x;
if(x>=60)a[65]++;
if(x>=50&&x<=59)a[66]++;
if(x>=40&&x<=49)a[67]++;
if(x>=30&&x<=39)a[68]++;
if(x>=20&&x<=29)a[69]++;
if(x<20)a[70]++;
}
b[70]=70,b[69]=69,b[68]=68,b[67]=67,b[66]=66,b[65]=65;
for(int i=65; i<=70; i++)
{
for(int k=i+1; k<=70; k++)
{
if(a[i]<a[k])
{
swap(a[i],a[k]);
swap(b[i],b[k]);
}
if(a[i]==a[k])
{
if(b[i]>b[k])
{
swap(a[i],a[k]);
swap(b[i],b[k]);
}
}
}
}
for(int i=65; i<=70; i++)
cout<<char(b[i])<<":"<<a[i]<<endl;
return 0;
}
记得点赞关注收藏哦~