Array
-
hallo,
habe mal eine frage.. folgender beispiel-code:int main() { int z[5]; int erg; int i; for (i=1; i<=5; i++) { cout<<"Bitte geben sie Zahl "<<i<<" ein: "; cin>>z[i]; } }
in diesem beispiel kann man ja jetzt 5 zahlen hintereinander eingeben..
was muss ich machen, damit ich anschliessend die zahlen z.b. addieren kann?
-
entweder
int sum = 0; for (int i = 0; i < 5; ++i) { sum+=z[i]; }
oder
#include <numeric> //... int sum = std::accumulate(z,&z[5],0); //0 ist der startwert
-
So addierst du alle 5 Zahlen nacheinander und speicherst sie in ergebnis. Aber ich würde bei 0 anfangen mit dem zählen, ist so üblich (zumindest habe ich es noch nie wirklich anders gesehen):
int main() { int z[4]; int erg = 0; // initialisieren um später zu rechnen int i; for (i=0; i<5; i++) { cout<<"Bitte geben sie Zahl "<<i+1<<" ein: "; /zeigt statt 0 ein 1 an usw. damit ein benutzer es leichter zu lesen hat. cin>>z[i]; // zahl in index 0-4 speichern } for (i=0; i<5; i++) { erg+=z[i]; } }
Code-Hacker
-
hi nochmal..
ging ja fix mit der antwort :)..
jetzt sieht das folgendermaßen aus:#include <iostream.h> int main() { int z[5]; int sum=0; int i; for (i=1; i<=5; i++) { cout<<"Bitte geben sie Zahl "<<i<<" ein: "; cin>>z[i]; sum+=z[i]; } cout<<sum<<endl; return 0; }
was ist daran jetzt noch falsch? bekomme am programmende immer eine fehlermeldung, dass das programm ein fehler verursacht hat.. kenn mich mit arrays leider noch viel zu wenig aus..
-
Du musst bei einem Array mit der Angabe 5 die Indizes 0-4 verwenden. Dies bedeutet es wird ein Feld mit 5 Elementen angelegt, deren Indexe so aussehen:
int z[0];
int z[1];
int z[2];
int z[3];
int z[4];#include <iostream.h> int main() { int z[5]; int sum=0; int i; for (i=0; i<5; i++) { cout<<"Bitte geben sie Zahl "<<i+1<<" ein: "; cin>>z[i]; sum+=z[i]; } cout<<sum<<endl; return 0; }
Jetzt wird es so gemacht das er immer 1-5 für den User anzeigt, da Menschen ja immer bei 1 anfangen mit dem zählen, der pc bzw. die strings aber bei 0, deswegen also +1 in der cout-anweisung.
Code-Hacker
-
danke.. jetzt hab ichs geschnallt..
vielen dank für die schnellen antworten :)..
-
wenn du das alles aber in eine schleife reinpackst, brauchst du kein array mehr, das ist dir schon klar?
-
ja, das mit der schleife habe ich auch ursprünglich gemacht..
das hier war eigentlich nur rein interesse halber.. hab mich eigentlich nur gefragt wie und ob es mit array geht..