Array deklarieren ?



  • Ich glaub ich bin echt zu blöd jetzt grade ! Habe folgendes Programm geschrieben welches mir den Durchscnitt eingegebener Zahlen eines Arrays berechnet :

    #include <iostream>
    #include <vector>
    
    using namespace std;
    
    int main()
    {
    	int x=0;
    	int xx=0;
    	int durchschnitt;
    
    	cout << "Hallo ! Wieviele Werte sollen eingegeben werden ?\n";
    	cin >> xx;
    	int werte_array[xx];
    
    	do
    	{
    	cout << "Wert " << x+1 << " : ";
    	cin >> werte_array[x];
    	cout << "\n";
    	++x;
    	}
    	while(x < anzahl_werte);
    
    	for(int i=0;i<anzahl_werte;--i)
    	{
    		durchschnitt = durchschnitt + werte_array[i];
    	}
    
    	cout << "Durchschnitt ist " << durchschnitt;
    }
    

    Sooo! für mich sieht das alles richtig aus nur mein Compiler meint , dass bei der deklaration des Arrays eine KOnstante Variable benutzt werden soll !

    Fehler 1 error C2057: Konstanter Ausdruck erwartet c:\dokumente und einstellungen\simon\eigene dateien\visual studio 2008\projects\vektor_analyse_programm\vektor_analyse_programm\main.cpp 14

    Ich verstehe nicht wieso es so nicht klappt ! Hoffe hier hat jemand eine Idee dazu !



  • Der Compiler sagt doch schon alles. Die Arraygröße muss konstant sein.
    Edit: stattdessen kannst du es so machen: int* werte_array=new int[xx];
    Nicht vergessen, danach mit delete[] aufzuräumen.



  • Aus

    int werte_array[xx];
    

    wird

    vector <int> werte_array(xx);
    

    Um das Löschen musst du dich so nicht kümmern. <vector> hast du ja bereits inkludiert.

    Gruß
    Don06



  • Ps: Du addierst nur alle Werte und vergisst den Durchschnitt zu nehmen.



  • Wie soll eig. deine do-while Schleife ausgeführt werden, wenn alleine die Bedingung schon nicht funktionieren kann, da es keine Variable namens "anzahl_werte" gibt ? ^^



  • Noch was:

    for(int i=0;i<anzahl_werte;--i) 
        { 
            durchschnitt = durchschnitt + werte_array[i]; 
        }
    

    Die For-Schleife wird sich auf diese Weise nicht so schnell beenden. Vor allem aber tut sie nicht, was erwartet wird.

    Du müsstest eher operator++ verwenden, um die Variable i zu inkrementieren.


Log in to reply