C# :: Aufgabe #13 :: Lösung #2
14 Lösungen

#13
Lotto - Simulation - 6 aus 49
Anfänger - C#
von Gustl
- 25.11.2012 um 16:16 Uhr
Schreiben Sie ein Programm, welches 6 Zahlen zwischen 1 und 49 abfrägt. Danach soll das Programm solange 6 Zufallszahlen berechnen bis alle 6 eingegebenen Zahlen übereinstimmen. Natürlich darf eine Zahl nicht zweimal vorkommen.
Dann soll ausgegeben werden nach wie vielen "Spielen" ein 6er erzielt wurde und wie hoch die Chance auf einen 3er, einen 4er und einen 5er war.
Dann soll ausgegeben werden nach wie vielen "Spielen" ein 6er erzielt wurde und wie hoch die Chance auf einen 3er, einen 4er und einen 5er war.
#2

von Isparia (690 Punkte)
- 07.12.2012 um 17:54 Uhr

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace lotto_generator { class Program { static void Main(string[] args) { Console.WriteLine("Willkommen zum Warscheinlichkeitsrechner für Lottozahlen"); Console.Write("Geben Sie Ihre 6 Lottozahlen, mit Komma getrennt, ein: "); string eingabe = Console.ReadLine(); string[] sechsZahlen = new string[6]; sechsZahlen = eingabe.Split(','); int[] getippteZahlen = new int[6]; int[] gezogeneZahlen = new int[6]; int ziehungen = 0, dreier = 0, vierer = 0, fuenfer =0; decimal warDreier, warVierer, warFuenfer; bool sechsRichtige = false; Random r = new Random(); for (int i = 0; i < sechsZahlen.Length; i++) { getippteZahlen[i] = Int16.Parse(sechsZahlen[i]); } for (int i = 0; i < getippteZahlen.Length; i++) { bool fehler = true; int zahlNr1=0, zahlNr2, zahlNr3, zahlNr4, zahlNr5; string zahl; switch (i) { case 0: zahlNr1 =1; zahlNr2 =2; zahlNr3 =3; zahlNr4 =4; zahlNr5 =5; zahl= "Erste"; fehler = Zahlen_Pruefen(getippteZahlen, i, fehler,zahlNr1, zahlNr2,zahlNr3, zahlNr4,zahlNr5, zahl); break; case 1: zahlNr1 = 0; zahlNr2 = 2; zahlNr3 = 3; zahlNr4 = 4; zahlNr5 = 5; zahl= "Zweite"; fehler = Zahlen_Pruefen(getippteZahlen, i, fehler,zahlNr1, zahlNr2,zahlNr3, zahlNr4,zahlNr5, zahl); break; case 2: zahlNr1 = 0; zahlNr2 = 1; zahlNr3 = 3; zahlNr4 = 4; zahlNr5 = 5; zahl= "Dritte"; fehler = Zahlen_Pruefen(getippteZahlen, i, fehler,zahlNr1, zahlNr2,zahlNr3, zahlNr4,zahlNr5, zahl); break; case 3: zahlNr1 = 0; zahlNr2 = 1; zahlNr3 = 2; zahlNr4 = 4; zahlNr5 = 5; zahl= "Vierte"; fehler = Zahlen_Pruefen(getippteZahlen, i, fehler,zahlNr1, zahlNr2,zahlNr3, zahlNr4,zahlNr5, zahl); break; case 4: zahlNr1 = 0; zahlNr2 = 1; zahlNr3 = 2; zahlNr4 = 3; zahlNr5 = 5; zahl= "Fünfte"; fehler = Zahlen_Pruefen(getippteZahlen, i, fehler,zahlNr1, zahlNr2,zahlNr3, zahlNr4,zahlNr5, zahl); break; case 5: zahlNr1 = 0; zahlNr2 = 1; zahlNr3 = 2; zahlNr4 = 3; zahlNr5 = 4; zahl= "Sechste"; fehler = Zahlen_Pruefen(getippteZahlen, i, fehler,zahlNr1, zahlNr2,zahlNr3, zahlNr4,zahlNr5, zahl); break; } } while (!sechsRichtige) { int treffer = 0; for (int i = 0; i < gezogeneZahlen.Length; i++) { gezogeneZahlen[i] = r.Next(1, 49); } for (int i = 0; i < gezogeneZahlen.Length; i++) { bool fehler = true; int zahlNr1, zahlNr2, zahlNr3, zahlNr4, zahlNr5; switch (i) { case 0: zahlNr1 = 1; zahlNr2 = 2; zahlNr3 = 3; zahlNr4 = 4; zahlNr5 = 5; fehler = gezogene_Zahlen_Pruefen(r, gezogeneZahlen, i, fehler, zahlNr1, zahlNr2, zahlNr3, zahlNr4, zahlNr5); break; case 1: zahlNr1 = 0; zahlNr2 = 2; zahlNr3 = 3; zahlNr4 = 4; zahlNr5 = 5; fehler = gezogene_Zahlen_Pruefen(r, gezogeneZahlen, i, fehler, zahlNr1, zahlNr2, zahlNr3, zahlNr4, zahlNr5); break; case 2: zahlNr1 = 0; zahlNr2 = 1; zahlNr3 = 3; zahlNr4 = 4; zahlNr5 = 5; fehler = gezogene_Zahlen_Pruefen(r, gezogeneZahlen, i, fehler, zahlNr1, zahlNr2, zahlNr3, zahlNr4, zahlNr5); break; case 3: zahlNr1 = 0; zahlNr2 = 1; zahlNr3 = 2; zahlNr4 = 4; zahlNr5 = 5; fehler = gezogene_Zahlen_Pruefen(r, gezogeneZahlen, i, fehler, zahlNr1, zahlNr2, zahlNr3, zahlNr4, zahlNr5); break; case 4: zahlNr1 = 0; zahlNr2 = 1; zahlNr3 = 2; zahlNr4 = 3; zahlNr5 = 5; fehler = gezogene_Zahlen_Pruefen(r, gezogeneZahlen, i, fehler, zahlNr1, zahlNr2, zahlNr3, zahlNr4, zahlNr5); break; case 5: zahlNr1 = 0; zahlNr2 = 1; zahlNr3 = 2; zahlNr4 = 3; zahlNr5 = 4; fehler = gezogene_Zahlen_Pruefen(r, gezogeneZahlen, i, fehler, zahlNr1, zahlNr2, zahlNr3, zahlNr4, zahlNr5); break; } } for (int i = 0; i < getippteZahlen.Length; i++) { for (int j = 0; j < gezogeneZahlen.Length; j++) { if (getippteZahlen[i] == gezogeneZahlen[j]) { treffer++; } } } switch (treffer) { case 3: dreier++; break; case 4: vierer++; break; case 5: fuenfer++; break; case 6: sechsRichtige = true; break; default: break; } ziehungen++; } warDreier = ziehungen/ dreier; warVierer = ziehungen/ vierer; warFuenfer =ziehungen/fuenfer; for (int i = 0; i < gezogeneZahlen.Length ; i++) { Console.WriteLine("Getippte Zahl: " + getippteZahlen[i] + " Gezogene Zahl: " + gezogeneZahlen[i]); } Console.WriteLine("Herzlichen Glückwunsch, Sie haben nach "+ziehungen+" Ziehungen 6 Richtige gehabt"); Console.WriteLine("Die Warscheinlichkeit auf \neinen Dreier war: 1:" + warDreier + "\neinen Vierer war: 1:" + warVierer + "\neinen Fünfer war: 1:" + warFuenfer); } private static bool gezogene_Zahlen_Pruefen(Random r, int[] gezogeneZahlen, int i, bool fehler, int zahlNr1, int zahlNr2, int zahlNr3, int zahlNr4, int zahlNr5) { while (fehler) { if ((gezogeneZahlen[i] != gezogeneZahlen[zahlNr1]) && (gezogeneZahlen[i] != gezogeneZahlen[zahlNr2]) && (gezogeneZahlen[i] != gezogeneZahlen[zahlNr3]) && (gezogeneZahlen[i] != gezogeneZahlen[zahlNr4]) && (gezogeneZahlen[i] != gezogeneZahlen[zahlNr5])) { fehler = false; } else { gezogeneZahlen[i] = r.Next(1, 49); } } return fehler; } private static bool Zahlen_Pruefen(int[] getippteZahlen, int i, bool fehler, int zahlNr1, int zahlNr2, int zahlNr3, int zahlNr4, int zahlNr5, string zahl) { while (fehler) { if (((getippteZahlen[i] != getippteZahlen[zahlNr1]) && (getippteZahlen[i] != getippteZahlen[zahlNr2]) && (getippteZahlen[i] != getippteZahlen[zahlNr3]) && (getippteZahlen[i] != getippteZahlen[zahlNr4]) && (getippteZahlen[i] != getippteZahlen[zahlNr5])) && getippteZahlen[i] > 0 && getippteZahlen[i] < 50) { fehler = false; } else { Console.WriteLine(zahl+" Zahl ist ungültig!"); Console.Write("Bitte korrigieren Sie Ihre Eingabe: "); getippteZahlen[i] = Int16.Parse(Console.ReadLine()); } } return fehler; } } }
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1