| 一分钟内做仰卧起坐的个数 | 成绩 |
| <20个 | F |
| 20~29个 | E |
| 30~39个 | D |
| 40~49个 | C |
| 50~59个 | B |
| >=60个 | A |
请从键盘读入n位同学的在一分钟内做仰卧起坐的数量,计算出每个成绩区间的人数,按照人数降序排序,如果有多个成绩区间人数一样多,那么先输出成绩较好的区间。(4.1.44)
输入第一是一个整数n代表同学的人数(n<=100),第二行是n个同学一分钟完成仰卧起坐的数量。
输出输出 6行为6个成绩区间的人数,每行按照“成绩:人数”的格式输出,按照人数降序输出。
样例
输入
10 19 18 17 20 21 28 30 45 48 51
输出
E:3 F:3 C:2 B:1 D:1 A:0
话不多说,上代码(本人比较暴力一点)
#includeusing namespace std; int n,a[105],x,b[105]; int main(){ cin>>n; for(int i=0; i >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]b[k])//因为b数组就是A-F的ascll码,就可以直接判断 { swap(a[i],a[k]); swap(b[i],b[k]); } } } } for(int i=65; i<=70; i++) cout<



