众数问题
来源:互联网 发布:Windows 7定时删除文件 编辑:程序博客网 时间:2024/06/11 02:09
问题描述:
给定含有n个元素的多重集合S,每个元素在S中出现的次数称为该元素的重数。多重集S中重数最大的元素称为众数。
例如,S={1,2,2,2,3,5}。 多重集S的众数是2,其重数为3。
对于给定的由n 个自然数组成的多重集S,编程计算S 的众数及其重数。
Input
输入的第1行多重集S中元素个数n;接下来的n 行中,每行有一个自然数,值在整数范围内
Output
程序运行结束时,将计算结果输出。输出文件有2 行,第1 行给出众数,第2 行是重数。如果很多数的出现次数相同则输出最小的那个。
代码分析:
<span style="font-size:18px;">#include <iostream>#include <stdlib.h>#include <fstream>#include <map>#include <vector>using namespace std;int main(){ifstream input("input.txt",ios::in);ofstream output("output.txt",ios::out);if (!input){cerr<<"inputfile could not be opened"<<endl;exit(1);}map<int,int> number_count;int number;while(input >>number){++number_count[number]; //注意map可以作为数组使用}map<int,int>::iterator map_it = number_count.begin(); vector<int> VNumbers;//!如果众数有多个 int maxcount = 0; while(map_it != number_count.end()){if (map_it->second > maxcount){ VNumbers.clear(); VNumbers.push_back(map_it->first);maxcount = map_it->second;}else if(map_it->second == maxcount){ VNumbers.push_back(map_it->first);}else{}map_it ++;} cout<<"众数有:"; while(!VNumbers.empty()){ cout<<VNumbers.back(); VNumbers.pop_back(); } cout<<endl; cout<<"众数的数量为: "<<maxcount;return 0;}</span>
0 0
- 众数问题
- 众数问题
- 众数问题
- 众数问题
- 众数问题
- 众数问题
- 众数问题
- 众数问题
- 众数问题
- 众数问题
- 众数问题
- 众数问题
- 众数问题
- 众数问题
- 众数问题
- 众数问题
- 众数问题
- 众数问题
- 系统的平均并发用户数和并发数峰值如何估算
- RMI入门知识
- Eclipse如何设置调试时自动切换到自己定制的透视视图
- Unsupervised Spectral Dual Assignment Clustering of Human Action in context
- HDU 4452 Running Rabbits
- 众数问题
- 黑马程序员——Java基础---IO---Filel类
- swift 2.0 闭包
- 两个android程序间的相互调用传递参数
- Codeforces Round #326 (Div. 2) 588 B. Duff in Love
- Codeforces Round #326 (Div. 2)587A. Duff and Weight Lifting
- C++ 数组的指针,指针的数组, 数组引用
- C语言相关知识
- rpm的制作 spec文件写法