原题链接:蓝桥杯算法提高VIP-分数统计
解题思路:
注意事项:
参考代码:
#include<iostream>
#include<algorithm>
using namespace std;
struct node{
int x;
}a[1001],b[1001],c[1001],d[1001],e[1001];//分别代表5个等级
int n;
int a1,b1,c1,d1,e1;//用来统计出现次数
int cmp1(node a,node b)//结构体排序一波
{
return a.x>b.x;
}
int main()
{
node st;
cin>>n;
for(int i=1;i<=n;i++)
{
int l;
cin>>l;
if(l>=90)
{
++a1;
a[a1].x=l;
}
else if(l>=80)
{
++b1;
b[b1].x=l;
}else if(l>=70)
{
++c1;
c[c1].x=l;
}else if(l>=60)
{
++d1;
d[d1].x=l;
}else
{
++e1;
e[e1].x=l;
}
}
cout<<a1<<" "<<b1<<" "<<c1<<" "<<d1<<" "<<e1<<" \n";
int maxl=a1,l=1;//比较出最多的数的编号
if(maxl<b1)
maxl=b1,l=2;
if(maxl<c1)
maxl=c1,l=3;
if(maxl<d1)
maxl=d1,l=4;
if(maxl<e1)
maxl=e1,l=5;
cout<<maxl<<endl;
switch(l)//无脑复制一波
{
case 1: sort(a+1,a+1+a1,cmp1); for(int i=1;i<=a1;i++) cout<<a[i].x<<" "; break;
case 2: sort(b+1,b+1+b1,cmp1); for(int i=1;i<=b1;i++) cout<<b[i].x<<" "; break;
case 3: sort(c+1,c+1+c1,cmp1); for(int i=1;i<=c1;i++) cout<<c[i].x<<" "; break;
case 4: sort(d+1,d+1+d1,cmp1); for(int i=1;i<=d1;i++) cout<<d[i].x<<" "; break;
case 5: sort(e+1,e+1+e1,cmp1); for(int i=1;i<=e1;i++) cout<<e[i].x<<" "; break;
}
return 0;
}0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复