CCF 201503-2 数字排序
思路:数组下标作为输入的整数,数组元素作为其下标整数出现的次数。
关键在输出时的方法,先倒序循环出现的次数最大出现次数不过1000次,再从小到大循环下标,有出现次数与数组元素相同的就输出 下标和出现次数。这样就满足了题中要求。
1 #include<iostream> 2 #include<cstring> 3 #include<vector> 4 using namespace std; 5 int arr[1001];///数据不超过1000 6 7 int main() 8 { 9 int n; 10 while(cin>>n) 11 { 12 int temp; 13 memset(arr,0,sizeof(arr)); 14 for(int i=0;i<n;i++) 15 { 16 cin>>temp; 17 arr[temp] ++; 18 } 19 ///最多的次数不超过1000 20 for(int i=1000;i>0;i--) 21 for(int j=0;j<=1000;j++) 22 { 23 if(arr[j] == i) 24 cout<<j<<" "<<i<<endl; 25 } 26 } 27 28 return 0; 29 }