#include #include using namespace std; struct digits { unsigned freq; char letter; }; int main() { digits digit[26]; for (int i = 0; i < 26; i++) { digit[i].letter = ('a' + i); digit[i].freq = 0; } char ch = 0; while (ch != '.') { cin.get(ch); // I intialized digit[] in alphabetical order // this means that I can directly index if(isalpha(ch)) { ch = tolower(ch); digit[ch - 'a'].freq++; } } for (int i = 0; i < 25; i++) { int max = i; for (int j = i; j < 26; j++) { if (digit[j].freq > digit[max].freq) { max = j; } } digits tmp = digit[i]; digit[i] = digit[max]; digit[max] = tmp; } for (int i = 0; i < 26; i++) { if(digit[i].freq) { cout << " " << digit[i].letter << " " << digit[i].freq << endl; } } }