#include #include #include 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; } // Map to count frequencies; using find/insert instead of operator[]. map counts; int number; while (fin >> number) { map::iterator it = counts.find(number); if (it != counts.end()) { it->second = it->second + 1; } else { counts.insert(pair(number, 1)); } } // Find the maximum frequency. int maxCount = 0; for (map::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::iterator it = counts.begin(); it != counts.end(); ++it) { if (it->second == maxCount) { cout << it->first << " "; } } cout << endl; return 0; }