/*
 * Soubor:  20101105-Fri-pocty-znaku-P4.c
 * Datum:   05.11.2010 08:25
 * Autor:   Marek Nožka, nozka z@vináč spseol tečka cz
 * Licence: GNU/GPL 
 * Úloha:  počet jednotlivých znaků
 * Popis:   
 */

#include <stdio.h>
#include <stdbool.h>

int na_velka_pismena(int c)
{
    if ( c >= 'a' && c <='z') {
        return c - ('a' - 'A');
    } else {
        return c;
    }
}

/////////////////////////////////////////////////////
#define PPISMEN 'Z'-'A'+1
/**
 * Hlavní program.
 */
int main(void) {
    int pznaku[PPISMEN] ;
        
    /* inicializace pole -- naplním pole nulovými hodnotami*/
    for (int i=0;i<PPISMEN;i++) {
        pznaku[i] = 0;
    }
    /* jestliže načtu znak navýším hodnotu v dané buňce pole*/
    int znak;
    while ( (znak = getchar()) != EOF ) {
        znak = na_velka_pismena(znak);
        if ( znak >= 'A' && znak <='Z') {
            pznaku[znak - 'A'] += 1;
        }
    }
    /* Výpis pole a přiřazení jednotlivých buněk písmenům  */
    for (int i=0;i<PPISMEN;i++) {
        printf("%c: %d\n",'A'+i,pznaku[i]);
    }
    /* hledání nejčetnějšího znaku */
    short i_max = 0; // index nejčetnějšího prvku
    for (int j=1;j<PPISMEN;j++) {
        if ( pznaku[j] > pznaku[i_max] ) { // pokud je hodnota prvku větší než doposud největší
            i_max = j;  // zapamatuji si index
        }
    }
    printf("Nejčetnější je písmeno %c, s četností %d\n",'A'+i_max,pznaku[i_max]);
    return 0;
}

