Cpp kertaustehtäviä ratkaisu6d
Mureakuha
Kirjoita ohjelma, jossa arvotaan lottonumeroita. Käyttäjältä kysytään ensin 7 numeroa, ohjelma arpoo satunnaisesti toiset 7 numeroa ja lopuksi näyttää kuinka monta käyttäjä sai oikein. Luo kaksi taulukkoa. Toiseen talletetaan käyttäjän numerot (esim. valitut[39], jossa 1 on valittu, 0 ei valittu) ja toiseen arvotut numerot (esim. arvotut[39], jossa 1 arvottu, 0 ei arvottu). Sekä kone, että käyttäjä eivät saa valita samaa samaa numeroa kuin yhden kerran.
#include <iostream> #include <stdlib.h> // rand-funktio #include <time.h> // time-funktio #define LOTTONUMEROITA 39 #define ARVOTTUJANUMEROITA 7 int main() { int arvotut [ LOTTONUMEROITA+1 ] = {0}; // koneet arpomat numerot int valitut [ LOTTONUMEROITA+1 ] = {0}; // käyttäjän valitsemat numerot int y = 0; // yleinen laskuri srand((unsigned) time(NULL)); // satunnaislukugeneraattorin sekoitus int annettunumero = 0; // käyttäjän valitsema numero for (y=0; y<ARVOTTUJANUMEROITA; y++) // kysyy käyttäjän numerot { cout << "Anna " << y+1 << ". numero: "; cin >> annettunumero; if (annettunumero > 39 || annettunumero < 1 || valitut[annettunumero] == 1) { cout << "Virheellinen numero.\n"; y--; } else valitut[annettunumero] = 1; } for (y=0; y<ARVOTTUJANUMEROITA; y++) // arpoo numerot { int arpa = rand(); // arvottu luku while (arpa > LOTTONUMEROITA) // pienentää lukua kunnes se on alle 40 arpa = arpa / 40; if (arvotut[arpa] == 1) // testaa, onko luku jo arvottu y--; // jos on, laskee uuden numeron else arvotut[arpa] = 1; // jos ei, merkkaa sen arvotuksi } cout << "\nAnnetut numerot: "; for (y=1; y<=LOTTONUMEROITA; y++) // tulostaa kayttajan numerot if (valitut[y] == 1) cout << y << " "; cout << "\nArvotut numerot: "; for (y=1; y<=LOTTONUMEROITA; y++) // tulostaa arvotut numerot if (arvotut[y] == 1) cout << y << " "; int oikein = 0; for (y=1; y<=LOTTONUMEROITA; y++) // laskeen oikeiden numeroiden määrän if (valitut[y] == 1 && arvotut[y] == 1) oikein++; cout << "\nOikeita numeroita" << oikein << " kpl.\n\n\n"; return 0; }
Tämän dokumentin kopiointi, levittäminen sekä muokkaaminen on sallittua GNU Free Documentation Licensen version 1.2 tai uudemman Free Software Foundationin julkaiseman version mukaisesti, ilman muuttumattomuuslauseketta tai kansitekstejä. Tätä koskee vastuuvapaus.
Kopio lisenssistä (englanniksi) löytyy täältä.
Kopio lisenssistä (englanniksi) löytyy täältä.
Alkuperäinen (c) Petteri Hämäläinen
