Frage zu arrays

Kenanffb

Grünschnabel
Ich hätte ein paar Fragen zu folgendem Programm:
Code:
int i, k, flag;
    int ziehung[6];
    
    
    srand (time(NULL));
    
    for (i=0; i<6; i++)
        {
              do 
                {
              
                   ziehung[i] = rand() % 49;

                   flag=0;
              
                   for (k=0; k<i; k++)
                       {
                             if  (ziehung[k] == ziehung [i]) flag = 1;
                        }
                   }
                  
              while (flag == 1);
              printf("%4i", ziehung[i]);
                  
         }
für was steht ziehung [k] und ziehung [i]?
Ist das ein weiteres neues feld, oder was ist da?
Was genau macht das Programm in der Zeile, die fettgedruckt ist?
 
Ich hätte ein paar Fragen zu folgendem Programm:

Code:
int i, k, flag;
    int ziehung[6];
    
    
    srand (time(NULL));
    
    for (i=0; i<6; i++)
        {
              do 
                {
              
                   ziehung[i] = rand() % 49;

                   flag=0;
              
                   for (k=0; k<i; k++)
                       {
                             if  (ziehung[k] == ziehung [i]) flag = 1;
                        }
                   }
                  
              while (flag == 1);
              printf("%4i", ziehung[i]);
                  
         }
für was steht ziehung [ k ] und ziehung [ i ]?
Ist das ein weiteres neues feld, oder was ist da?

also ziehung ist deine FeldVariable und die klammer dahinter gibt an welches feld von der Variable angesprochen wird. In diesen Klammern kannst du auch Variablen stehen haben.

dein ziehung[ k ] zeigt beim ersten durchlauf der Schleife auf 0 das heißt das es "intern" so aussieht:
Code:
ziehung[0] //zugriff auf das erste Feld von ziehung
ziehung[ i ] wir auch einen Wert haben und i ist auch ne Variable mit dem du den Index des Feldes bestimmst. z. B. kann die Zahl i den Wert 6 haben.

Was genau macht das Programm in der Zeile, die fettgedruckt ist?

Der Wert des Feldes ziehung[ k ] wird mit dem Wert des Feldes ziehung[ i ] verglichen. Ist der Wert identisch so wird der Variable "flag" der Wert 1 zugewiesen

Auf die Zahlen von Oben bezogen macht die Anweisung folgendes:

Sie vergleicht die Werte der Felder ziehung[0] mit ziehung[6] und wenn der Wert der Felder identisch ist wird der Variable "flag" der Wert 1 zugewiesen

Ich hoffe ich konnte es dir etwas näher bringen

Gruß
Rudolf Grauberger

edit: Bitte die CODE-Task's benutzen
 
Zuletzt bearbeitet:
Vielen lieben Dank Herr Grauberger. Sie konnten mich ein Stückchen weiterbringen.
Aber taucht auch schon die nächste Frage auf... :-D

Also er überprüft die diese zwei Felder, dass hab ich verstandne.
Und WENN diese 2 Felder gleich sind, dann setzt er das Flag gleich 1

Abe warum steht dann in der nächsten zeile

While flag gleich 1, gib die zahlen aus?

ich mein flag gleich 1 beudetet doch lediglich, dass die 2 Werte gleich sind... :-o
 
While flag gleich 1, gib die zahlen aus?

Nein das heißt. wenn flag gleich 1 ist dann läuft die "Suche" weiter Sonst abbruch der Schleife und Ausgabe

ich mein flag gleich 1 beudetet doch lediglich, dass die 2 Werte gleich sind... :-o

Hier wird überprüft ob die Zahlen/Werte gleich sind, wenn ja wird flag auf 1 gesetzt. Die Do-while-Schleife läuft aber nur weiter wenn flag == 1 ist. Das heißt wenn der Wert identisch ist dann läuft die do-while-Schleife immer weiter und versucht die nächsten Feldelemente aus (ob die identisch sind).

Wenn es keine Identische Werte gibt dann wird die do-while-Schleife verlassen und die zahl wird ausgegeben.

Die Ausgabe findet nur statt wenn die Werte nicht identisch sind.
 
Zurück