VS08 C# Lottozahlen Generator inhalt vom Array Vergleich mit sich selbst

R

Roaddog99

Mooin,
folgendes prob. möchte gerne Zahlenwerte in einem array mit sich selber abfragen ob sie gleich sind und dann wenn sie halt gleich sind sie neu zu generieren.
hab schon viele Foren durchsucht...hab auf einige sachen wie das umwandeln evtl. in List<T> usw. aber ich bekomme das einfach nich umgesetzt. Ich möchte das am liebsten in einem array lassen ohne dieses dauerhafte umwandeln.

jemand ne lösung?

Thx im voraus

hier mein code:
C#:
namespace WindowsFormsApplication2
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        

        private void Form1_Load(object sender, EventArgs e)
        {

        }
        Random zufall = new Random();
        private int Output;
        bool sortiert = true;
        bool geprueft = false;
        private void button1_Click(object sender, EventArgs e)
        {
            try
            {

                
                int[] array;
                array = new int[6];

                for (int i = 0; i < 6; i++)
                {

                    Output = Output + zufall.Next(1, 49);
                    array[i] = Convert.ToInt32(Output + array[i]);
                    if (Output > 0)
                    {
                        Output = 0;
                    }

                    
                    
                }

                do
                {
                    for (int i = 0; i < array.Length; i++ )
                    {
                        

                            for (int j = i+1; j < array.Length; j++)
                            {
                                
                                if (array[i] > array[j])
                                {
                                  int temp = array[i];
                                  array[i] = array[j];
                                  array[j] = temp;
                                  sortiert = false;
                                }
                            
                            }
                            sortiert = true;
                          
                     }
                    
                    
                 } 
                while (!sortiert)
 
Hi

Mal ne kurze Frage vorneweg: Wozu dient die Output-Variable in der ersten For-Schleife? Soweit ich sehen kann müsste das ja das gleiche Ergebnis liefern wie:
C#:
for (int i = 0; i < 6; i++)
{
  array[i] = Convert.ToInt32(zufall.Next(1, 49));                                   
}
 
Zuletzt bearbeitet von einem Moderator:
Du möchtest einfach ein Array erhalten das zufällig generiert ist und keine doppelten Werte ennthält?

C#:
bool doppelte = true;

while (doppelte)
{
  doppelte = false;

  for (int i = 0; i < 6; i++)
  {
    for (int j = i + 1; j < 6; j++)
    {
      if (array[i] == array[j])
      {
        doppelte = true;
        array[j] = Convert.ToInt32(Random.next);

        //Damit die Schleifen gleich neu anfangen
        i = 7;
        j = 7;
      }
    }
  }
}
 
Zuletzt bearbeitet von einem Moderator:
moin,
ja das ist etwas unkonventionell geschrieben so wie du's gemacht hast ist deutlich einfacher und das selbe. Kam mir nich in den Sinn. Kann auch sein das ich n Fehler hatte und das so gemacht hatte oder so. Sry wenn das unkonventioneller ist.
aba das ist gerad nicht das problem ich muss das auffe reihe kriegen mit dem Zahlen vergleichen nur mir kommt nix in den sinn. Ich bin auch eher C# Neuling.
 
Moin,
ja ob optimal oda nich iss mir latte da ich nur versuche c# zu verstehen und es zu lernen dafür mach ich mir die übungsaufgaben bzw. projekte wie z.b. einen Lottozahlen Generator =).
 
Achja jetzt weiß ich auch warum ich das mit dem Output gemacht habe
weil man ein anderes Zufallsmuster hat. Bei dem vorschlag von dir würden,
wenn man jetzt noch nich den vergleich im Array auf gleiche zahlen hat, oft
gleiche zahlen rauskommen.
 
Habs geschafft die abfrage
C#:
if (array[i] == array[j])
war schon richtg meiner überlegen nach und auch den Posts von Steiner_B nur ich habe die Abfrage an der falschen stelle gemacht.

Trotzdem danke für die hilfe
 
Ich bin per Gastzugang hier
und kann deswegen den thread nich schließen.=(
 
Zurück