C# :: Aufgabe #13 :: Lösung #4

14 Lösungen Lösungen öffentlich
#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.
#4
vote_ok
von Bacon2008 (260 Punkte) - 29.01.2015 um 15:55 Uhr
Quellcode ausblenden C#-Code
/*
 * Erstellt mit SharpDevelop.
 * Benutzer: especk
 * Datum: 28.01.2015
 * Zeit: 10:20
 * 
 * Sie können diese Vorlage unter Extras > Optionen > Codeerstellung > Standardheader ändern.
 */
using System;
using System.Collections.Generic;

namespace Lotto_Simulation_6_aus_49
{
	class Program
	{
		public static void Main(string[] args)
		{
			Console.Title = "Lotto - Simulation - 6 aus 49";
			
			Console.WriteLine("Geben sie die erste Zahle ein");
			int z1= int.Parse(Console.ReadLine());
			while(z1<1 || z1>49){Console.WriteLine("Nur Zahlen Zwischen 1 und 49");
				Console.WriteLine("Geben sie die erste Zahle ein");
				z1=int.Parse(Console.ReadLine());
			}

			Console.WriteLine("Geben sie die zweite Zahle ein");
			int z2= int.Parse(Console.ReadLine());
			while(z2<1 || z2>49 || z2==z1)
			{	Console.WriteLine("Nur Zahlen Zwischen 1 und 49 und keine Doppelten");
				Console.WriteLine("Geben sie die zweite Zahle ein");
				z2=int.Parse(Console.ReadLine());
			}

			Console.WriteLine("Geben sie die dritte Zahle ein");
			int z3= int.Parse(Console.ReadLine());
			while(z3<1 || z3>49 || z3==z2  || z3==z1)
			{	Console.WriteLine("Nur Zahlen Zwischen 1 und 49 und keine Doppelten");
				Console.WriteLine("Geben sie die dritte Zahle ein");
				z3=int.Parse(Console.ReadLine());
			}

			Console.WriteLine("Geben sie die vierte Zahle ein");
			int z4= int.Parse(Console.ReadLine());
			while(z4<1 || z4>49 || z4==z1 || z4==z2 || z4==z3)
			{	Console.WriteLine("Nur Zahlen Zwischen 1 und 49 und keine Doppelten");
				Console.WriteLine("Geben sie die vierte Zahle ein");
				z4=int.Parse(Console.ReadLine());
			}

			Console.WriteLine("Geben sie die fünfte Zahle ein");
			int z5= int.Parse(Console.ReadLine());
			while(z5<1 || z5>49 || z5==z1 || z5==z2 || z5==z3 || z5==z4)
			{	Console.WriteLine("Nur Zahlen Zwischen 1 und 49 und keine Doppelten");
				Console.WriteLine("Geben sie die fünfte Zahle ein");
				z5=int.Parse(Console.ReadLine());
			}

			Console.WriteLine("Geben sie die sechste Zahle ein");
			int z6= int.Parse(Console.ReadLine());
			while(z6<1 || z6>49 || z6==z1 || z6==z2 || z6==z3 || z6==z4 || z6==z5)
			{	Console.WriteLine("Nur Zahlen Zwischen 1 und 49 und keine Doppelten");
				Console.WriteLine("Geben sie die sechste Zahle ein");
				z6=int.Parse(Console.ReadLine());
			}
			
			Random Zr = new Random();

			List<int> gefZahlen =new List<int>();
			List<int> gegZahlen =new List<int>();
			gegZahlen.Add(z1);
			gegZahlen.Add(z2);
			gegZahlen.Add(z3);
			gegZahlen.Add(z4);
			gegZahlen.Add(z5);
			gegZahlen.Add(z6);
			
			int zv1=0;
			int ii=0;
			int ee=0;
			long iii=0;
			
			
			do{
			
				while (ii!=6)
					{zv1 = Zr.Next(1,50);
					if (gefZahlen.Contains(zv1)){zv1 = Zr.Next(1,50);}
					else{gefZahlen.Add(zv1);ii++;}
				}
				
			gefZahlen.Sort();
			gegZahlen.Sort();
			iii++;
			
			for (int i =0; i<=5;i++)
			{
				if (gegZahlen[i]==gefZahlen[i]){ee++;}
			}
			if(ee!=6){gefZahlen.Clear(); ii=0;ee=0;}
			if (iii%1000 == 0) {
				Console.WriteLine(iii);
			}
				}
			while (ee!=6);
			Console.WriteLine("Es hat {0} Versuche gebraucht um Ihre Zahlen zu ziehen",iii);
			foreach (int item in gefZahlen) 
			{
				Console.Write("{0} ",item);
			}

			
			Console.WriteLine();
			Console.Write("Press any key to continue . . . ");
			Console.ReadKey(true);
		}
	}
}

Kommentare:

Für diese Lösung gibt es noch keinen Kommentar

Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben
2091034

Du scheinst einen AdBlocker zu nutzen. Ich würde mich freuen, wenn du ihn auf dieser Seite deaktivierst und dich davon überzeugst, dass die Werbung hier nicht störend ist.