解题思路:
注意事项:
参考代码:
#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 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复