/*
 * Soubor:  20110117-Mon-dvakrat.c
 * Datum:   17.01.2011 10:13
 * Autor:   Marek Nožka, nozka <@t> spseol <d.t> cz
 * Licence: GNU/GPL 
 * Úloha: 
 * Popis:   
 ****************************************************/
#include <stdio.h>
#include <stdlib.h>

/* ***************    Makra    ******************** */
#define POLEC 20

/* ***************   Funkce    ******************** */

int pole[POLEC];
int hotovo[POLEC];
int hotovoc;

/* Funkce naplní pole náhodnými čísly */
void generuj(void) 
{
    for(int i=0; i<POLEC; i++) {
        pole[i] = rand() % 10;
    }
}

/* Funkce vypíše pole na obrazovku */
void ukaz(void) 
{
    for(int i=0; i<POLEC; i++) {
        printf("%d ",pole[i]) ;
    }
    putchar('\n');
}

/* Funkce přidá číslo do pole hotovo */
void pridej(int cislo) 
{
    hotovo[hotovoc] = cislo;
    hotovoc++;
}

/* Funkce hledá číslo v poli hotovo, pokud tam je vrátí TRUE, 
 * pokud ne vrátí FALSE.                                     */
int hledej(int cislo)
{
    int i=0;
    while (i<hotovoc) {
        if ( hotovo[i] == cislo ) {
            return 1; // okamžitě ukončí funkci 
        }
        i++;
    }
    return 0;
}

/****************************************************
 *               Hlavní program                     *
 ****************************************************/
int main(void) {
    int pocet;

    generuj();
    ukaz();
    hotovoc = 0;

    /* procházím pole a počítám jednotlivá čísla */
    for (int i=0; i<POLEC; i++) {
        if ( ! hledej(pole[i]) ) { // počítám ho, jen pokud jsem ho ještě nepočítal
            pocet = 0;
            for (int j=i; j<POLEC; j++) {
                if ( pole[i] == pole[j] ) {
                    pocet++;
                }
            }
            pridej(pole[i]); // znovu už ho počítat nechci  
            if ( pocet == 2) {
                printf("%d ",pole[i]);
            }
        }
    }
    putchar('\n');
    return 0;
}

