CCF201503-2 数字排序——又是一个小错误

xiaoxiao2021-02-28  61

问题描述   给定 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 评测用例规模与约定   1 ≤  n ≤ 1000,给出的数都是不超过1000的非负整数。

题目本身不难只要老老实实扫时间妥妥的,问题就是又有一个奇奇怪怪的错让我心塞了好久

声明全局数组的时候判题系统好像并没有给初始化... ...

一般用vs敲的时候全局为0都成习惯了,这次图省事没写,WA到心态崩

不说了,上代码

#include<iostream> using namespace std; #define MAX 1000+5 int buk[MAX] = { 0 }; int main(){ int n; cin >> n; for (int i = 0; i < n; i++){ int k; cin >> k; buk[k]++; } for (int i = 0; i < n; i++){ int max = 0,maxi = 0; for (int j = 0; j < MAX; j++){ if (buk[j] > max){ max = buk[j]; maxi = j; } } if (max == 0) break; cout << maxi << " " << max << endl; buk[maxi] = 0; } return 0; }

转载请注明原文地址: https://www.6miu.com/read-80200.html

最新回复(0)