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



## Roaddog99 (5. Juli 2010)

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:

```
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)
```


----------



## Steiner_B (5. Juli 2010)

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:

```
for (int i = 0; i < 6; i++)
{
  array[i] = Convert.ToInt32(zufall.Next(1, 49));                                   
}
```


----------



## Steiner_B (5. Juli 2010)

Du möchtest einfach ein Array erhalten das zufällig generiert ist und keine doppelten Werte ennthält?


```
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;
      }
    }
  }
}
```


----------



## Roaddog99 (5. Juli 2010)

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.


----------



## Steiner_B (5. Juli 2010)

Der Algorithmus oben basiert auf BubbleSort. Das ist eher einfach zu verstehen, dafür ist die Laufzeit nicht optimal.

http://de.wikipedia.org/wiki/Bubblesort


----------



## Roaddog99 (5. Juli 2010)

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 =).


----------



## Roaddog99 (5. Juli 2010)

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.


----------



## Roaddog99 (5. Juli 2010)

Habs geschafft die abfrage 
	
	
	



```
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


----------



## Steiner_B (5. Juli 2010)

Sehr gut! Wenn alles funktioniert schließ doch bitte den Post.


----------



## Roaddog99 (5. Juli 2010)

Ich bin per Gastzugang hier 
und kann deswegen den thread nich schließen.=(


----------

