44 lines
1.0 KiB
C++
44 lines
1.0 KiB
C++
#include <iostream>
|
|
#include <fstream>
|
|
#include <map>
|
|
using namespace std;
|
|
|
|
int main(int argc, char* argv[]) {
|
|
if (argc != 2) {
|
|
cerr << "Usage: " << argv[0] << " inputfile" << endl;
|
|
return 1;
|
|
}
|
|
|
|
ifstream fin(argv[1]);
|
|
if (!fin) {
|
|
cerr << "Error opening file " << argv[1] << endl;
|
|
return 1;
|
|
}
|
|
|
|
// Use operator[] to count frequency of each integer.
|
|
map<int, int> counts;
|
|
int number;
|
|
while (fin >> number) {
|
|
counts[number] = counts[number] + 1;
|
|
}
|
|
|
|
// Find the maximum frequency.
|
|
int maxCount = 0;
|
|
for (map<int, int>::iterator it = counts.begin(); it != counts.end(); ++it) {
|
|
if (it->second > maxCount) {
|
|
maxCount = it->second;
|
|
}
|
|
}
|
|
|
|
// Print all numbers with frequency equal to maxCount.
|
|
cout << "Modes: ";
|
|
for (map<int, int>::iterator it = counts.begin(); it != counts.end(); ++it) {
|
|
if (it->second == maxCount) {
|
|
cout << it->first << " ";
|
|
}
|
|
}
|
|
cout << endl;
|
|
|
|
return 0;
|
|
}
|