Warum funktioniert der Code nicht?

Von: , Frage gestellt am Sa, 29. Mär 2008

Hallo,

ich hab einen einfachen Rechner mit zwei Funktionen programmiert, er soll bei "+" nur die Addieren Funktion ausführen, was er auch tut, und bei "-" nur die Subtrahieren Funktion ausführen. Aber da führt er beide aus... kann mir da jemand helfen?

Gleich im Vorhinein: Bin noch ziemlicher Anfänger ;-)

Danke & Lg

Hier der code:

*************************

#include <iostream>
#include <string>
using namespace std;
//Funktionen
double addieren(double zahladdieren1, double zahladdieren2);
double subtrahieren (double zahlsubtrahieren1, double zahlsubtrahieren2);
int main()
{
cout << "Bitte zwei Zahlen eingeben!" << endl;
int zahl1;
int zahl2;
char rechenzeichen;
cin >> zahl1;
cin >> rechenzeichen;
cin >> zahl2;
if (rechenzeichen == '+')
{
addieren (zahl1, zahl2);
}
else if (rechenzeichen == '-')
{
subtrahieren(zahl1, zahl2);
}
else
{
cout << "Falsche Eingabe!" << endl;
}
double zahl_zum_ausgeben_add = addieren(zahl1, zahl2);
cout << zahl_zum_ausgeben_add << endl;
double zahl_zum_ausgeben_sub = subtrahieren(zahl1, zahl2);
cout << zahl_zum_ausgeben_sub << endl;
return 0;
}
double addieren(double z1, double z2)
{
double ergebnis_add = z1 + z2;
return ergebnis_add;
}
double subtrahieren(double z1, double z2)
{
double ergebnis_sub = z1 - z2;
return ergebnis_sub;
}


[MOD]: PRE-Tags hinzugefügt, bitte in Zukunft selbst machen!

3 Antworten zu dieser Frage

  1. Antwort von nach einer Stunde 0 hilfreich
    Re: Warum funktioniert der Code nicht?

    Also die If-Else-Anweisungen würd ich durch ein switch ersetzen, also in etwa so:

    switch (rechenzeichen)
    case '+':
    addieren(...);
    break;
    case '-': 
    subtrahieren(...);
    break;
    default:
    cout<<"Fehlerhafte Eingabe!";
    break;
    


    Ich kann dir nichts versprechen aber mMn. sollte das funktionieren

    viel Erfolg
    Andy

  2. Antwort von nach 2 Stunden 0 hilfreich
    Re: Warum funktioniert der Code nicht?

    Hallo, ich hab einen einfachen Rechner mit zwei Funktionen
    programmiert, er soll bei "+" nur die Addieren Funktion
    ausführen, was er auch tut, und bei "-" nur die Subtrahieren
    Funktion ausführen. Aber da führt er beide aus... kann mir da
    jemand helfen?

    Gleich im Vorhinein: Bin noch ziemlicher Anfänger ;-)
    OK, ist schon fast richtig. Du mußt halt nur die
    Ergebnisse der Berechnungen in den if-
    Blöcken verwenden, also etwa so:

    ...
    int main()
    {
    cout << "Bitte zwei Zahlen getrennt durch Operation eingeben (dann Enter)" << endl;
    char rechenzeichen;
    double zahl1,zahl2;
    cin >> zahl1 >> rechenzeichen >> zahl2;
    if(rechenzeichen == '+') {
    double zahl_zum_ausgeben = addieren(zahl1, zahl2);
    cout << zahl_zum_ausgeben << endl;
    }
    else if(rechenzeichen == '-') {
    double zahl_zum_ausgeben = subtrahieren(zahl1, zahl2);
    cout << zahl_zum_ausgeben << endl;
    }
    else {
    cout << "Falsche Eingabe!" << endl;
    }
    return 0;
    }
    ...
    



    Grüße

    CMБ

  3. Antwort von nach 14 Stunden 0 hilfreich
    Debugger

    Hallo,

    ich hab einen einfachen Rechner mit zwei Funktionen
    programmiert, er soll bei "+" nur die Addieren Funktion
    ausführen, was er auch tut, und bei "-" nur die Subtrahieren
    Funktion ausführen. Aber da führt er beide aus... kann mir da
    jemand helfen?

    Hallo,

    um Dein Verständnis für den Kontrollfluss in einem Programm zu verbessern, würd ich Dir empfehlen, einen Debugger zu verwenden und durchzusteppen.

    z.B ist in Microsoft Visual Studio Express (ist kostenlos)
    ein Debugger integriert.

    Nach dem Starten von Visual Studio:
    Neues Projekt -> Konsolenanwendung
    Deinen Code hineinkopieren und alle Compiler-fehler beseitigen.
    F10 drücken.
    Mit jedem Drücken von F10 wird eine Zeile des Programms ausgeführt.
    F11 stept in Unterfunktionen hinein.

    Falls es nicht klappt, kannst Du Dich ja nochmal melden.

    Grüße
    Thorsten

Keine passende Antwort gefunden? Jetzt eigene Frage stellen!