Moim dzisiejszym projekcikiem było stworzenie loterii/totolotka. Program ma losować liczby, my mamy podawać swoje, on ma je porównywać i taakie tam. Program zaczął się wysypywać, kiedy zmieniłem moją tablicę, która przechowuje liczby wpisane z długości "5" na "n", gdzie n podajemy na początku programu. Czy to jest poprawne? Jak nie, to czym to zastąpić?
namespace Loteria
{
class Program
{
public static int n;
public static int[] losowane=new int[5];
public static int[] wpisane=new int[n+1];
public static int k;
public static Random r=new Random();
public static void Losowanie()
{
for (int i = 0; i < 5; i++)
{
losowane[i] = r.Next(0, 20);
}
}
public static void PodawanieIlosciLiczb()
{
Console.WriteLine("Podaj ilość szans do wylosowania liczb");
Console.WriteLine("1 szansa - 2zł\n2 szanse - 5zł\n3 szanse - 11 zł");
n = int.Parse(Console.ReadLine());
}
public static void WypisLosowane()
{
Console.Write("Wylosowane liczby to:");
for (int i = 0; i < 5; i++)
{
Console.Write(" "+losowane[i]);
}
Console.WriteLine();
}
public static void WypisWpisane()
{
Console.Write("Twoje liczby to: ");
for (int i = 0; i < n; i++)
{
Console.Write(" " + wpisane[i]);
}
Console.WriteLine();
}
public static void PodawanieLiczb()
{
for (int i = 0; i < n; i++)
{
Console.WriteLine("Podaj liczbę nr. " + (i+1));
wpisane[i] = int.Parse(Console.ReadLine());
}
}
public static void SprawdzenieLiczb()
{
for (int i = 0; i < 5; i++)
{
for (int m = 0; m < n; m++)
{
if (wpisane[i] == losowane[n]) k = k + 1;
else { }
}
}
if(k==0) Console.WriteLine("\n\nWytypowałeś poprawnie " + k + " liczb!");
else if(k==1) Console.WriteLine("\n\nWytypowałeś poprawnie " + k + " liczbę!");
else if (k < 5) Console.WriteLine("\n\nWytypowałeś poprawnie " + k + " liczby!");
else Console.WriteLine("\n\nWytypowałeś poprawnie " + k + " liczb!");
}
static void Main(string[] args)
{
Losowanie();
PodawanieIlosciLiczb();
PodawanieLiczb();
Console.Clear();
WypisLosowane();
WypisWpisane();
SprawdzenieLiczb();
Console.Read();
}
}
}