CCF-201503-2—数字排序
题目:
代码:
#include <iostream>
using namespace std;
int main(){
int n,m=1,flag=0,f;
cin>>n;
int A[n];
int B[1000][2]={0};
for(int i=0;i<n;i++){
cin>>A[i];
}
B[0][0]=A[0];
B[0][1]=1;
for(int i=1;i<n;i++){
for(int j=0;j<m;j++){
if(A[i]==B[j][0]){
B[j][1]++;
} else{
flag++;
}
}
if(flag==m){
B[m][0]=A[i];
B[m][1]++;
m++;
}
flag=0;
}
for(int i=0;i<m-1;i++){
for(int j=0;j<m-1-i;j++){
if(B[j][1]>B[j+1][1]){
flag=B[j+1][1];
f=B[j+1][0];
B[j+1][0]=B[j][0];
B[j+1][1]=B[j][1];
B[j][0]=f;
B[j][1]=flag;
}else if(B[j][1]==B[j+1][1]){
if(B[j][0]<B[j+1][0]){
flag=B[j+1][1];
f=B[j+1][0];
B[j+1][0]=B[j][0];
B[j+1][1]=B[j][1];
B[j][0]=f;
B[j][1]=flag;
}
}
}
}
for(int i=m-1;i>=0;i--){
cout<<B[i][0]<<" "<<B[i][1]<<endl;
}
return 0;
}