Einfaches Programm - Fehler



  • Ich steh noch ziemlich am Anfang von C++. Ich wollte nun ein Programm schreiben was aus 4 Zahlen den Durchschnitt errechnet.

    #include <iostream>
    
    using namespace std;
    
    int main()
    
    {  
    	//Variablen
    	float zahl1;
    	float zahl2;
    	float zahl3;
    	float zahl4;
    	float durchschnitt;
    
    //Eingabe
    	cout<<"Zahl1:\t";
    	cin>>zahl1;
    
    	cout<<"Zahl2:\t";
    	cin>>zahl2;
    
    	cout<<"Zahl3:\t";
    	cin>>zahl3;
    
    	cout<<"Zahl4:\t";
    	cin>>zahl4;
    
    	//Verarbeitung
    	durchschnitt=zahl1+zahl2+zahl3+zahl4/4;
    
    	//Ausgabe
    
    	cout<<"============================";
    
    	cout<<"Der Durchschnitt ist:\t"<<durchschnitt"";
    
    	cin.get();
    
    }
    

    Wenn ich nun den Quelltext kompilieren will bekomme ich folgene Fehlermeldung:

    error C2143: Syntaxfehler: Es fehlt ';' vor 'Zeichenfolge'

    Der Fehler wird in der Zeile angezeigt:

    cout<<"Der Durchschnitt ist:\t">>durchschnitt"";

    Nun finde ich da jetzt den Fehler nicht.
    Könnte mir jemand erklären wo der Fehler liegt und wieso?

    Ich bedanke mich schon mal.


  • Mod

    Welchen Zweck sollend die beiden Anführungszeichen am Ende der Zeile erfüllen?



  • Ändere mal die Zeile

    cout<<"Der Durchschnitt ist:\t"<<durchschnitt"";
    

    in

    cout<<"Der Durchschnitt ist:\t"<<durchschnitt;
    

    die sind einfach überflüssig.



  • Das wars, danke. Denn an einem anderen Computer habe ich mit Visual Studio 2005 gearbeitet. Da musste ich die "" setzen damit das Programm startete. An diesen Pc war es mit 2008. Da scheint es anders zu sein. Das muss ich mir nun merken. Danke für die schnellen Antworten.



  • Seltsam hab ich noch nie gehört. 🙂



  • Deine Formel ist falsch:

    durchschnitt=zahl1+zahl2+zahl3+zahl4/4;
    

    Du musst Klammern setzen:

    durchschnitt=(zahl1+zahl2+zahl3+zahl4)/4;
    


  • Und du solltest dir vielleicht direkt angewöhnen, bei solchen Sachen durch einen Fließkommawert zu dividieren, also so:

    durchschnitt=(zahl1+zahl2+zahl3+zahl4)/4.;  //4 ist ein double-Wert
    

    oder so:

    durchschnitt=(zahl1+zahl2+zahl3+zahl4)/4.f;  //4 ist ein float-Wert
    

    In deinem Fall ist es zwar egal, da deine zahlx-Variablen schon float-Werte sind, aber beim nächsten Mal - wenn du einen Durchschnitt aus int-Variablen bilden willst - fliegst du vielleicht schon auf die Nase, weil das Ergebnis einer Ganzzahlendivision sich heftigst von dem einer FP-Division unterscheiden kann. Da hilft es auch nicht, das Ergebnis der Ganzzahlendivision einer float-Variable zuzuweisen. Nur so als Tipp für die Zukunft... 🙂


Anmelden zum Antworten