C语言给定一个百分位分数T,将其分为以下五个级别之一:90~100为A, 80~89为B, 70~79为C, 60~69为D, 0~59为E 有几个百分位分数(分数数不超过1000),请数出五个级别的人数,找出人数最多的级别,并按降序输出该级别中每个人的分数(人数最多的只有一个级别)。 输入: 第一行是年级数n 第二行是学生的分数,一组正整数,由空格分隔,从0到100 输出: 第一行是5个正整数,代表在A、B、C、D和E五个级别中的人数 第二行中的正整数表示人数最多的类中的人数 下一行用空格分隔的若干正整数表示人数最多的关卡中所有人的分数,并按降序输出。
时间: 2023-06-27 17:05:54 浏览: 91
以下是C语言的代码实现:
```c
#include <stdio.h>
int main()
{
int n, score;
int A = 0, B = 0, C = 0, D = 0, E = 0;
int maxNum = 0;
int maxScore[1000];
int i, j, temp;
scanf("%d", &n);
for (i = 0; i < n; i++) {
scanf("%d", &score);
if (score >= 90 && score <= 100) {
A++;
} else if (score >= 80 && score <= 89) {
B++;
} else if (score >= 70 && score <= 79) {
C++;
} else if (score >= 60 && score <= 69) {
D++;
} else {
E++;
}
}
printf("%d %d %d %d %d\n", A, B, C, D, E);
if (A > maxNum) {
maxNum = A;
}
if (B > maxNum) {
maxNum = B;
}
if (C > maxNum) {
maxNum = C;
}
if (D > maxNum) {
maxNum = D;
}
if (E > maxNum) {
maxNum = E;
}
printf("%d\n", maxNum);
if (maxNum == A) {
for (i = 0; i < n; i++) {
if (score >= 90 && score <= 100) {
maxScore[i] = score;
}
}
} else if (maxNum == B) {
for (i = 0; i < n; i++) {
if (score >= 80 && score <= 89) {
maxScore[i] = score;
}
}
} else if (maxNum == C) {
for (i = 0; i < n; i++) {
if (score >= 70 && score <= 79) {
maxScore[i] = score;
}
}
} else if (maxNum == D) {
for (i = 0; i < n; i++) {
if (score >= 60 && score <= 69) {
maxScore[i] = score;
}
}
} else {
for (i = 0; i < n; i++) {
if (score >= 0 && score <= 59) {
maxScore[i] = score;
}
}
}
for (i = 0; i < maxNum; i++) {
for (j = i + 1; j < maxNum; j++) {
if (maxScore[i] < maxScore[j]) {
temp = maxScore[i];
maxScore[i] = maxScore[j];
maxScore[j] = temp;
}
}
}
for (i = 0; i < maxNum; i++) {
printf("%d ", maxScore[i]);
}
return 0;
}
```
输入样例:
```
10
80 85 70 90 60 75 100 95 85 80
```
输出样例:
```
2 3 1 1 3
3
100 95 90
```
阅读全文