/*
 * Soubor:  20110107-Fri-prave-dvakrat-S4.c
 * Datum:   07.01.2011 10:04
 * Autor:   Marek Nožka, nozka <@t> spseol <d.t> cz
 * Licence: GNU/GPL 
 * Úloha: 
 * Popis:   
 ****************************************************/
#include <stdio.h>
#include <stdlib.h>

/* ***************    Makra    ******************** */
#define ARREYC 20

/* *************** Globální proměnné  ************* */

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

/* přidá prvek do pole hotovo */
void pridej(int prvek, int arr[], int *hotovop)
{
    arr[*hotovop] = prvek;
    (*hotovop)++;
}

/* kontroluje zda je prvek v poli hotovo
 * pokud ano vrátí 1 (true )
 * pokud ne vrátí 0 (false) */
int kontroluj(int prvek, int arrc, int arr[])
{
    for (int i = 0; i < arrc; i++) {
        if (arr[i] == prvek) {
            return 1;           // hurá, našel jsem, okamžitě končím
        }
    }
    /* nic jsem nenašel */
    return 0;
}

/****************************************************
 *               Hlavní program.
 ****************************************************/
int main(void)
{
    int pole[ARREYC];
    int hotovo[ARREYC];
    int hotovop;

    hotovop = 0;

    /* naplníme pole náhodnými čísly */
    for (int i = 0; i < ARREYC; i++) {
        pole[i] = rand() % 21;
    }
    /*  pole na obrazovku   */
    for (int i = 0; i < ARREYC; i++) {
        printf("%d ", pole[i]);
    }
    putchar('\n');

    /* počítám prvky, které jsou právě dvakrát */
    for (int i = 0; i < ARREYC; i++) {
        /* podívám jestli už jsem toto číslo nepočítal */
        if (kontroluj(pole[i], ARREYC, pole)) {
            //printf("### %d\n",i);
            continue;           /* přeskočí zbytek těla cyklu a pokračuje další obrátkou */
        }
        /* počítám */
        int pocet = 0;
        for (int j = i; j < ARREYC; j++) {
            if (pole[j] == pole[i]) {
                pocet++;
            }
        }
        if (pocet == 2) {
            printf("%d ", pole[i]);
        }

        /* znovu už ho počítat nebudu */
        pridej(pole[i],hotovo,&hotovop);
    }
    putchar('\n');

    return 0;
}

