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 Variablei
zu inkrementieren.