tutorials.de Buch-Aktion 02/2012
ERLEDIGT
NEIN
ANTWORTEN
9
ZUGRIFFE
1551
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Roaddog99 Tutorials.de Gastzugang
    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:
    Code csharp:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    
    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)
     

  2. #2
    Steiner_B Steiner_B ist offline Mitglied Platin
    Registriert seit
    Mar 2004
    Ort
    Wien
    Beiträge
    573
    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:
    Code csharp:
    1
    2
    3
    4
    
    for (int i = 0; i < 6; i++)
    {
      array[i] = Convert.ToInt32(zufall.Next(1, 49));                                   
    }
     

  3. #3
    Steiner_B Steiner_B ist offline Mitglied Platin
    Registriert seit
    Mar 2004
    Ort
    Wien
    Beiträge
    573
    Du möchtest einfach ein Array erhalten das zufällig generiert ist und keine doppelten Werte ennthält?

    Code csharp:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    
    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;
          }
        }
      }
    }
     

  4. #4
    Roaddog99 Tutorials.de Gastzugang
    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.
     

  5. #5
    Steiner_B Steiner_B ist offline Mitglied Platin
    Registriert seit
    Mar 2004
    Ort
    Wien
    Beiträge
    573
    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
     

  6. #6
    Roaddog99 Tutorials.de Gastzugang
    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 =).
     

  7. #7
    Roaddog99 Tutorials.de Gastzugang
    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.
     

  8. #8
    Roaddog99 Tutorials.de Gastzugang
    Habs geschafft die abfrage
    Code csharp:
    1
    
    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
     

  9. #9
    Steiner_B Steiner_B ist offline Mitglied Platin
    Registriert seit
    Mar 2004
    Ort
    Wien
    Beiträge
    573
    Sehr gut! Wenn alles funktioniert schließ doch bitte den Post.
     

  10. #10
    Roaddog99 Tutorials.de Gastzugang
    Ich bin per Gastzugang hier
    und kann deswegen den thread nich schließen.=(
     

Ähnliche Themen

  1. Antworten: 2
    Letzter Beitrag: 13.07.06, 00:31
  2. Antworten: 0
    Letzter Beitrag: 23.01.05, 01:26
  3. Vergleich Inhalt zweier Dateien
    Von schokoriese im Forum CGI, Perl, Python, Ruby, Power Shell
    Antworten: 2
    Letzter Beitrag: 21.12.03, 23:00
  4. ip vergleich mit inhalt von textdatei
    Von srpcool im Forum PHP
    Antworten: 2
    Letzter Beitrag: 01.09.03, 08:41