Array und genügend Speicher



  • Hallo,

    ich bin gerade wieder am Auffrischen bzw. Neuerlernen meiner C++ Kenntnisse. Dabei bin ich gerade bei Arrays, wobei ich folgendes Programm erstellt habe:

    while(1)
    	{
    		int anzahl;
    		cout << "F" << ue << "r wie viele Werte m" << oe << "chten sie den Mittelwert berechnen? (0 dr" << ue << "cken zum Beenden) " << endl;
    		cin >> anzahl;
    
    		if(anzahl == 0)
    		{
    			break;
    		}
    
    		double werte[anzahl];
    
    		int loop1;
    		int loop;
    		int anzahl2 = anzahl+1;
    		for(loop1 = 1, loop = 0; loop1 < anzahl2; ++loop1, ++loop)
    		{
    			cout << "Geben Sie den " << loop1 << ". Wert ein: " ;
    			cin >> werte [loop];
    
    		}
    
    		double mittelwert = 0;
    		for (loop = 0; loop < anzahl; ++loop)
    		{
    			mittelwert += werte [loop];
    		}
    
    		cout << "Der Mittelwert von " << anzahl << " betr" << ae << "gt " << mittelwert/anzahl << endl;
    		cout << endl;
    	}
    

    Natürlich ist klar, dass der Compiler meckert, da ihm die Zahl der Variablen "anzahl" beim Kompilieren noch nicht bekannt ist und er somit nicht weiß, wie viel Speicher er reservieren muss.
    Nun habe ich schon ziemlich lange gesucht, habe aber noch immer nicht verstanden, wie ich "double werte[anzahl]" umschreiben kann, damit er mir so viele double-Variablen produziert, wie der Benutzer eingegeben hat. Über eine Erklärung dazu wäre ich sehr dankbar.

    Danke im Voraus. 🙂



  • http://www.cplusplus.com/reference/vector/vector/

    Und dann: Buch. Dass deine aktuelle Lernmethode nicht weit führen wird ist bereits erkennbar.



  • VielSpassDamit schrieb:

    Dass deine aktuelle Lernmethode nicht weit führen wird ist bereits erkennbar.

    Inwiefern ist das erkennbar?





  • RaylanGivens schrieb:

    Inwiefern ist das erkennbar?

    Weil C++ nicht einer der Sprache ist, die man durch vollkommen ungeleitetes und "einfach mal los jetzt"-Lernen sinnvoll erlernen kann.



  • VielSpassDamit schrieb:

    RaylanGivens schrieb:

    Inwiefern ist das erkennbar?

    Weil C++ nicht einer der Sprache ist, die man durch vollkommen ungeleitetes und "einfach mal los jetzt"-Lernen sinnvoll erlernen kann.

    Das ist mir bewusst. Deshalb lerne ich auch mit einem Buch ("C++ - Programmieren mit einfachen Beispielen" von Dirk Louis). Nur bin ich keiner, der sich immer stur an das Buch hält, sondern ich stelle mir selber schwierigere Aufgaben.
    In dem Buch sollte man ein Programm erstellen, mit dem man von 10 Werten den Mittelwert berechnen kann. Nur leider war mir dieses Programm zu unflexibel, weshalb ich mir eins programmieren wollte, mit dem ich den Mittelwert von beliebig vielen Zahlen berechnen lassen kann.



  • Vielleicht wäre es besser abzuwarten, bis diese Themen drankommen, anstatt direkt drauf los zu programmieren?

    Übrigens mag ich Dirk Louis nicht so, hat in meinem Buch zu viel const char* verwendet. Ich weiß allerdings nicht, wie es in diesem Buch ist.


Anmelden zum Antworten