您的位置:首页 > 其它

201503-2

2019-09-02 21:08 87 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/qq_42790021/article/details/100386329

注意是将输入的数作为id,所以不能只排n个,要排所有的,万一有的id为1000呢,刚开始id是为下标的。不能用数组的原因是,借助sort时,不容易写比较的规则,因为他没有id,所以借助结构体使他有id,而且排序之后下标与id便没有关系了。比较的时候传入的是结构体

#include <bits/stdc++.h>
using namespace std;
struct numsort
{
int id;
int time;
};
bool cmp(numsort a,numsort b)
{
if(a.time!=b.time) return a.time>b.time;
else return a.id<b.id;
}
int main()
{
numsort a[1001];
int i=0,n,b;
cin>>n;
for(i=0;i<1001;i++)
{
a[i].id=i;
a[i].time=0;
}
for(i=0;i<n;i++)
{
cin>>b;
a[b].time++;
}
sort(a,a+1001,cmp);
for(i=0;i<n;i++)
{
if(a[i].time!=0)
cout<<a[i].id<<" "<<a[i].time<<endl;
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: