Preisberechnung falsches Ergebnis



  • Hi Leute, der Noob mal wieder 😉

    Ich habe die Aufgabe gestellt bekommen, ein Programm zu schreiben, welches Preise für den Eintrittspreis in die Badeanstalt berechnet und bei der Testeingabe von 10 Erw und 10 Kind für 10 Stunden mit Zugang zur Therme erhalte ich als Ergebnis 92 Euro statt:

    Erwachsene: 108=80
    Kinder: 10
    4=40
    =120
    +Thermenzugang=40
    =160
    -20% Gruppenrabatt=32 Euro
    Ergebnis = 128 Euro

    Vielleicht findet jemand ja den Fehler, Vielen Dank schonmal...

    #include <iostream>
    #include <math.h>
    
    using namespace std;
    
    int main ()
    {
        double Erw,Kind,Zeit,Endpreis;
        char a;
    
        cout << "Dieses Programm ermittelt den Eintrittspreis fuer das Badeparadies..." << endl << endl;
        cout << "Geben Sie die Anzahl der Erwachsenen ein...";
        cin >> Erw;
        cout << "Geben Sie die Anzahl der Kinder ein...";
        cin >> Kind;
        cout << "Geben Sie die Badezeit in Stunden ein...";
        cin >> Zeit;
        cout << "Ist Zugang zur Therme erwuenscht? ";
        cin >> a;
    
        if (Zeit<1,5)
        Endpreis=Erw*5+Kind*2.5;
        else if (Zeit>=1,5 && Zeit<3)
        Endpreis=Erw*5.8+Kind*2.9;
        else if (Zeit>=3 && Zeit<24)
        Endpreis=Erw*8+Kind*4;
    
        if (a=='j')
        Endpreis=Endpreis+2.0*(Erw+Kind);
        else if (a=='n')
        Endpreis=Endpreis;
        else if (a!='j' && a!='n')
        cout << "Falsche Eingabe!";
    
        if (Erw+Kind>=4)
        Endpreis=Endpreis-(Endpreis/100*20);
        else if (Erw+Kind<4)
        Endpreis=Endpreis;
    
        cout << endl << endl << "Der Endpreis betraegt: " << Endpreis << " [Euro]" << endl;
    
        cin.get();cin.get();
        return 0;
    }
    

  • Administrator

    In C++ verwendet man den Punkt statt das Komma, um die Dezimalziffern abzutrennen. Also nicht 1,5 sondern 1.5 😉
    Im übrigen heisst der C Header <math.h> in C++ <cmath> . Allerdings benutzt du gar keine Funktionen aus diesem Header, kannst ihn also weglassen.

    Des Weiteren solltest du ein wenig an der Formatierung deines Codes arbeiten. Das ganze ist schrecklich zusammengestaucht. Gib ihm etwas mehr Platz. Auch hat es viele unnötige Überprüfungen drin, welche sich gegenseitig eigentlich ausschliessen. Auch Selbstzuweisungen sind vorhanden.

    Grüssli


Anmelden zum Antworten