数字排序
Time Limit: 1.0s
Memory Limit: 256.0MB
Input
输入的第一行包含一个整数n,表示给定数字的个数。
第二行包含n个整数,相邻的整数之间用一个空格分隔,表示所给定的整数。
评测用例规模与约定 1 ≤ n ≤ 1000,给出的数都是不超过1000的非负整数。
Sample Output
3 4
2 3
5 3
1 1
4 1#include<iostream> #define N 1005 using namespace std; struct num{ int val; int count; num(){ count=0; } }; num a[N],t; void Bubble(int n) { for(int i=0;i<n-1;i++){ for(int j=0;j<n-i-1;j++){ if(a[j].count<a[j+1].count||(a[j].count==a[j+1].count&&a[j].val>a[j+1].val)) { t.val=a[j].val; t.count=a[j].count; a[j].val=a[j+1].val; a[j].count=a[j+1].count; a[j+1].val=t.val; a[j+1].count=t.count; } } } } int main() { int n,c; while(cin>>n) { int sum=1; cin>>a[0].val; a[0].count=1; for(int i=1;i<n;i++){ cin>>c; bool check=true; for(int j=0;check&&j<sum;j++) { if(c==a[j].val){ a[j].count++; check=false; } } if(check){ a[sum].val=c; a[sum].count=1; sum++; } } Bubble(sum); for(int i=0;i<sum;i++){ cout<<a[i].val<<" "<<a[i].count<<endl; } } return 0; }