#includeint 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; } } }
输入多少人,再输入每个人的分数, 计算各个分数段的人数,并输出最多的一段数量并以大到小打印出来该段的所有分数。



