题目描述
解题思路
#include<iostream>
#include<algorithm> // sort(), unique()
using namespace std;
struct pp{
int value;
int num;
pp(){}
pp(int _value,int _num)
{
value=_value;
num=_num;
}
};
pp a[1000];
int main()
{
int n,y;
cin>>n;
int b[n],c[n];
for(int i=0;i<n;i++)
{
cin>>y;
b[i]=y;
c[i]=y;
}
//去重
sort(b,b+n);
int x=unique(b,b+n)-b;
//初始化
for(int i=0;i<x;i++)
{
a[i].value=b[i];
a[i].num=0;
}
//遍历
for(int i=0;i<x;i++)
{
for(int j=0;j<n;j++)
{
if(a[i].value==c[j])
{
a[i].num++;
}
}
}
//排序
for(int i=0;i<x;i++)
{
for(int j=i+1;j<x;j++)
{
if(a[i].num<a[j].num)
{
int temp1;
int temp2;
temp1=a[i].num;
a[i].num=a[j].num;
a[j].num=temp1;
temp2=a[i].value;
a[i].value=a[j].value;
a[j].value=temp2;
}
else if(a[i].value>a[j].value)
{
int temp1;
int temp2;
temp1=a[i].num;
a[i].num=a[j].num;
a[j].num=temp1;
temp2=a[i].value;
a[i].value=a[j].value;
a[j].value=temp2;
}
}
}
for(int i=0;i<x;i++)
{
cout<<a[i].value<<' '<<a[i].num<<endl;
}
return 0;
}