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..


Anmelden zum Antworten