5. vje~zbe iz C-a -- 1. zadatak

✓XHTML1

Napi~site program koji igra sljede~tu igru: baca se standardna igra~ta kocka, uzastopno. Rezultati bacanja (prirodni brojevi od 1 do 6) unose se sa standardnog ulaza, dok se ne unesu dvije ~sestice zaredom. Nakon svakog unosa, treba ispisati do tog trenutka unesene brojeve. Osim toga, ako se unese broj 6 , tada:

  1. nakon te ~sestice unese se jo~s jedan broj, ozna~cimo ga s x.
  2. Na~de se pretposljednja pojava x u nizu dotad une~senih brojeva (posljednja je upravo uneseni x nakon broja 6).
    Ako takve nema (x se dosad pojavio samo jednom), ne ispisuje se ni~sta i nastavlja se dalje s unosom normalno.
  3. Izra~cuna se prosje~cna vrijednost svih brojeva izme~du pretposljednje i posljednje pojave xa -- ra~cunaju~ti broj 6 , ali ra~cunaju~ti s~am x samo jednom.
  4. Ispi~se se taj prosjek zaokru~zen na najbli~zi cijeli broj (polovice se zaokru~zuju na vi~se), i pribroji se trenutnom broju bodova.
  5. Na kraju, treba ispisati ukupan broj bodova.

    Na primjer, za unesene brojeve 1,2,5,4,6,2,5,6,3,6,2,6,6 treba ispisati:

    Dosad: 1
    Dosad: 12
    Dosad: 125
    Dosad: 1254
    Dosad: 12546
    Dosad: 125462               (2+5+4+6)/4=~4
    Bodovi: 4
    Dosad: 1254625
    Dosad: 12546256
    Dosad: 125462563            (Nema bodova, prva pojava 3)
    Dosad: 1254625636
    Dosad: 12546256362          (2+5+6+3+6)/5=~4
    Bodovi: 4
    Dosad: 125462563626
    Dosad: 1254625636266
    Ukupni bodovi: 8
    

    Unesene brojeve treba ~cuvati u dvostruko vezanoj listi.

    Ako vam ostane vremena: napravite i program koji simulira bacanje kocke -- na standardni izlaz ispisuje slu~cajne brojeve od 1 do 6 , i pokrenite oba programa ulan~cano pomo~tu Unix kanal~a (kocka|igraj).