Anfängerfrage - Minimum in Array
-
Mugglschoaß schrieb:
Hier sollten Anfangswerte für das Minimum und Maximum gesetzt werden, die dann jeweils mit dem nächsten erzeugten Wert verglichen werden
Die Idee ist ja gut, aber das solltest du erst machen, nachdem du das Array befüllt hast. Sonst steht wer weiß was in a[0].
-
Danke, hab jetzt zwei Schleifen gebaut, die erste befüllt die Felder, die zweite kümmert sich um min und max, wobei min = a[0] und max = a[0] erst vor der zweiten Schleif initialisiert werden --> klappt

-
int n = 100; int a[n];naja ...
-
Anfängerfehler
Muss natürlich n=99 heißen und die Schleife bis <=n laufen.
-
Mugglschoaß schrieb:
Anfängerfehler
Muss natürlich n=99 heißen.Nein, muss es nicht.
Edit:
Auch nach deinem Edit ist das falsch, da du beim definieren vom Array die Anzahl der Element angibst.Aber du bist hier bei C++ und da gibt es (wie schon gesagt) std::vector
-
Ich dachte, wenn ich a[100] schreibe, erzeugt das a[0]...a[100}, also 101 Felder statt 100, deswegen a[99] und Schleife soll 100 mal durchlaufen, sprich i=0 bis i<=99.
std::vector kenne ich "offiziell" noch nicht, deswegen will ich die Aufgabe ohne lösen.
-
Nein.
Bei der Definition wird die Anzahl der Element angegeben.
Da der Index immer bei 0 anfängt, hat das letzte Element einen Index, der Eins niedriger als die Anzahl ist.Darum läuft die Schleife auch von 0 bis < Anzahl, damit dort Anzahl steht.
-
OK, danke.
-
Es ist natürlich auch sehr sinnvoll, immer den Ausgangspost zu verändern. Da passen die Antworten so schön ...
-
Mugglschoaß schrieb:
Anfängerfehler
Muss natürlich n=99 heißen und die Schleife bis <=n laufen.ich meinte eher die variable Größe des Arrays in
int n = 100; int a[n];Obwohl es Compiler gibt, die das akzeptieren, kann man damit gewaltig auf die Nase fallen, wenn die Array-Größe in die Nähe der Stackgröße kommt. In meinem System wäre das, wenn n in die Nähe von 2048*1024 kommt (8 MB = 2048*1024 ints). Sollte man sich vielleicht besser gar nicht erst angewöhnen.
PS. Dieses Unterforum heißt "alle ISO-Standards" ...
-
Auch wenn du
int a[100];schreibst, wird das Array auf dem Stack angelegt (sofern es nicht global oder static ist und das System einen Stack hat)
-
gegen int a[100] ist ja auch wenig einzuwenden