Anfängerfrage - Minimum in Array
-
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