问题 C: 数字排序问题
来源:互联网 发布:mac如何安装阿里旺旺 编辑:程序博客网 时间:2024/05/17 05:59
题目描述
给定n个整数,请统计出每个整数出现的次数,按出现次数从多到少的顺序输出。
输入
输入的第一行包含一个整数n,表示给定数字的个数。
第二行包含n个整数,相邻的整数之间用一个空格分隔,表示所给定的整数。
输出
输出多行,每行包含两个整数,分别表示一个给定的整数和它出现的次数。按出现次数递减的顺序输出。如果两个整数出现的次数一样多,则先输出值较小的,然后输出值较大的。
样例输入
12
5 2 3 3 1 3 4 2 5 2 3 5
样例输出
3 4
2 3
5 3
1 1
4 1
AC代码:
#include<iostream>using namespace std;void ch(int a[][2], int x, int y) { int b = a[x][0], c = a[x][1]; a[x][0] = a[y][0]; a[x][1] = a[y][1]; a[y][0] = b; a[y][1] = c;}int judge(int a[][2], int x) { for (int i = 0; i<100; i++) { if (a[i][0] == x) return i; } return -1;}int main() { int x, n, j = 0, k; static int a[100][2]; cin >> n; for (int i = 0; i<n; i++) { cin >> x; k = judge(a, x); if (k>=0) a[k][1]++; else { a[j][0] = x; a[j][1]++; j++; } } int min; for (int i = 0; i<j - 1; i++) { min = 0; for (int k = 0; k < j - i; k++) { if (a[k][1] < a[min][1]) min = k; if (a[k][1] == a[min][1]) if (a[k][0] > a[min][0]) min = k; } ch(a, min, j - i-1); } for (int i = 0; i<j; i++) cout << a[i][0] << " " << a[i][1] << endl; return 0;}
阅读全文
0 0
- 问题 C: 数字排序问题
- 数字排序问题(c++)
- 数字排序问题
- 数字排序问题
- 数字排序问题
- 1002: 数字排序问题
- HNU OJ题库 1002C数字排序问题
- C数字图形问题
- 【C++】数字问题
- oracle中数字排序问题
- 数字去重排序问题
- 字母数字汉字排序问题
- 毕晓英415 数字排序问题
- 关于十数字排序问题
- 数组排序问题(数字字符串排序)
- C语言排序问题
- c语言排序问题
- C++--车厢排序问题
- RecyclerView的onLayout浅析(一)
- LSTM 两个激励函数区别sigmoid 和tanh
- 编程实现一个单链表的测长
- 对公钥和私钥使用的理解
- MySQL触发器初探
- 问题 C: 数字排序问题
- C语言的关键字
- 火狐浏览器使用方法 使用扩展Stylish 实现浏览博客园的博文时,文字的背景颜色变为护眼绿
- C语言 头指针链表
- FTP协议
- 大话数据结构 code 第五章 02二叉树链式结构实现_BiTreeLink
- 自动化学生如何面对嵌入式学习
- poj3093 Margaritas on the River Walk(特殊的01背包)
- Awk命令简介