#include<stdio.h>
int fenglei(int a)
{
if (a >= 90 && a <= 100)return 0;
if (a >= 80 && a <= 89)return 1;
if (a >= 70 && a <= 79)return 2;
if (a >= 60 && a <= 69)return 3;
if (a >= 0 && a <= 59)return 4;
}
void maopao(int A[],int n)
{
int i, j, temp;
for (i = 0; i < n - 1; ++i) //比较n-1轮
{
for (j = 0; j < n - 1 - i; ++j) //每轮比较n-1-i次,
{
if (A[j] < A[j + 1])
{
temp = A[j];
A[j] = A[j + 1];
A[j + 1] = temp;
}
}
}
}
void print(int A[],int a)
{
int i=0;
printf("\n");
maopao(A,a);
for (; i < a; i++)
{
printf("%d ", A[i]);
}
}
int main()
{
int A[1000], n, i = 0, B[5] = {0},max,flag;
int C[1000] = {0}, D[1000] = { 0 }, E[1000] = { 0 }, F[1000] = { 0 }, G[1000] = { 0 };
int c=0, d=0, e=0, f=0, g=0;
printf("the number of grades:\n");
scanf_s("%d", &n);
for (; i < n; i++)
{
scanf_s("%d", &A[i]);
}
for (i=0; i < n; i++)
{
B[fenglei(A[i])]++;
switch (fenglei(A[i]))
{
case 0:
{
C[c] = A[i];
c++;
break;
}
case 1:
{
D[d] = A[i];
d++;
break;
}
case 2:
{
E[e] = A[i];
e++;
break;
}
case 3:
{
F[f] = A[i];
f++;
break;
}
case 4:
{
G[g] = A[i];
g++;
break;
}
}
}
for (i=0; i < 5; i++)
{
printf("%d ", B[i]);
}
max = B[0];
for (i = 0; i < 5; i++)
{
if (max < B[i])
{
max = B[i];
flag = i;
}
}
printf("\n%d", B[flag]);
switch(flag)
{
case 0:
{
print(C,B[flag]);
break;
}
case 1:
{
print(D, B[flag]);
break;
}
case 2:
{
print(E, B[flag]);
break;
}
case 3:
{
print(F, B[flag]);
break;
}
case 4:
{
print(G, B[flag]);
break;
}
}
}
输入多少人,再输入每个人的分数, 计算各个分数段的人数,并输出最多的一段数量并以大到小打印出来该段的所有分数。