#include <stdio.h>
#define IDADE_MIN 18
#define IDADE_MAX 21
#define DIM  IDADE_MAX - IDADE_MIN + 1

int main(){
    
//    int freq[DIM][DIM];
    
    int freq[DIM][DIM] = {{2, 0, 1, 3},
                          {0, 4, 0, 0},
                          {0, 0, 0, 1},
                          {0, 0, 0, 1}};

    int iCont, jCont;
    int idadeH, idadeM;
    int idadeMaiorFreqH, maiorFreqH;
    int idadeMaiorFreqF, maiorFreqF;
    int idadeMaiorFreqFHf, idadeMaiorFreqFHh, maiorFreqFH;
    int freqAtual;
    
    
            
            

    for(iCont = 0; iCont < DIM; iCont++)
        for(jCont = 0; jCont < DIM; jCont++)
            freq[iCont][jCont] = 0;

    do{
        printf("Informe as idades H e M :\\> ");
        scanf("%d %d", &idadeH, &idadeM);
        if(idadeH >= IDADE_MIN && idadeM >= IDADE_MIN &&
           idadeH <= IDADE_MAX && idadeM <= IDADE_MAX){
            freq[idadeH - IDADE_MIN][idadeM - IDADE_MIN]++;
        }    
    }while(idadeH >= IDADE_MIN && idadeM >= IDADE_MIN);      


    idadeMaiorFreqH = 0;
    maiorFreqH =  0;
    
    for(iCont = 0; iCont < DIM; iCont++){
        freqAtual = 0;
        for(jCont = 0; jCont < DIM; jCont++)
            freqAtual += freq[iCont][jCont];
        if(freqAtual > maiorFreqH){
            maiorFreqH = freqAtual; 
            idadeMaiorFreqH = iCont;
        }
    }            

    idadeMaiorFreqF = 0;
    maiorFreqF =  0;
    for(jCont = 0; jCont < DIM; jCont++){
        freqAtual = 0;
        for(iCont = 0; iCont < DIM; iCont++)
            freqAtual += freq[iCont][jCont];
        if(freqAtual > maiorFreqF){
            maiorFreqF = freqAtual; 
            idadeMaiorFreqF = jCont;
        }
    }            

    idadeMaiorFreqFHh = 0;
    idadeMaiorFreqFHf = 0;
    maiorFreqFH =  0;
    for(iCont = 0; iCont < DIM; iCont++)
        for(jCont = 0; jCont < DIM; jCont++)
            if(freq[iCont][jCont] > maiorFreqFH){
                maiorFreqFH = freq[iCont][jCont]; 
                idadeMaiorFreqFHh = iCont;
                idadeMaiorFreqFHf = jCont;
            }


    for(iCont = 0; iCont < DIM; iCont++){
        for(jCont = 0; jCont < DIM; jCont++)
            printf("%i\t", freq[iCont][jCont]);
            
        printf("\n");    
    }   

    idadeMaiorFreqH += IDADE_MIN;
    idadeMaiorFreqF += IDADE_MIN;
    
    idadeMaiorFreqFHh += IDADE_MIN;
    idadeMaiorFreqFHf += IDADE_MIN;
    
    printf("Idade Típica Homem: %d com %d casamentos.\n", idadeMaiorFreqH, maiorFreqH);
    printf("Idade Típica Mulher: %d com %d casamentos.\n", idadeMaiorFreqF, maiorFreqF);
    printf("Idade Típica Casamento: %d %d com %d casamentos.\n", idadeMaiorFreqFHh, idadeMaiorFreqFHf, maiorFreqFH);

    return 0;
}