解题思路:
注意事项:
参考代码:
#include<stdio.h>
#include<stdlib.h>
int maxmum(int x, int y)
{
return x > y ? x : y;
}
int compare(void const* a,void const* b)
{
int num_a = *(int*)a;
int num_b = *(int*)b;
if (num_a < num_b)
return -1;
else if (num_a > num_b)
return 1;
else
return 0;
}
int main()
{
int a[5][1000], i, j=0,k=0,l=0,m=0,p=0,n, score[1000],max_num,max_sign=0;
scanf("%d", &n);
for (i = 0; i < n; i++)
scanf("%d", &score[i]);
for (i = 0; i < n; i++)
{
if (score[i] >= 90 && score[i] <= 100)
{
a[0][j] = score[i];
j++;
}
else if (score[i] >= 80 && score[i] <= 89)
{
a[1][k] = score[i];
k++;
}
else if (score[i] >= 70 && score[i] <= 79)
{
a[2][l] = score[i];
l++;
}
else if (score[i] >= 60 && score[i] <= 69)
{
a[3][m] = score[i];
m++;
}
else
{
a[4][p] = score[i];
p++;
}
}
max_num = maxmum(maxmum(maxmum(j, k), l), m);
if (max_num == j)
max_sign = 0;
else if (max_num == k)
max_sign = 1;
else if (max_num == l)
max_sign = 2;
else if (max_num == m)
max_sign = 3;
else if (max_num == p)
max_sign = 4;
qsort(a[max_sign], max_num, sizeof(int), compare);
printf("%d %d %d %d %d\n", j, k, l, m,p);
printf("%d\n", max_num);
for (i = max_num - 1; i >= 0; i--)
printf("%d ", a[max_sign][i]);
return 0;
}
0.0分
0 人评分