Fehler bei Multiplikation



  • Was ist daran falsch?

    double multiplikation(double faktor1, double faktor2)
    {
    	double ergebnis;
    
    	ergebnis = faktor1 * faktor2;
    
    	return ergebnis;
    }
    

    Das Programm macht einfach mit dem Code darunter weiter wenn ich diesen Teil aufrufen will.
    Wieso?

    lg



  • - wie rufst du das denn auf?
    - woran siehst du dass die funktion nicht ausgeführt wird?
    - falls es im debugger ist: hast du im release-modus oder im debugmodus compiliert?



  • Okay..

    ich stell mal mehr vom Text rein

    double multiplikation(double faktor1, double faktor2)
    {
    	double ergebnis;
    
    	ergebnis = faktor1 * faktor2;
    
    	return ergebnis;
    }
    

    ...

    case 3: cout << "Multiplikation" << endl << endl;
    			cout << "Geben Sie 2 Zahlen ein: ";
    			cin  >> wert1;
    			cin  >> wert2;
    			cout << "Das Ergebnis lautet " << multiplikation(wert1, wert2) << "." << endl;
    			break;
    

    ...

    default: cout << "Falsche Eingabe" << endl;
    			 break;
    

    Er macht immer "Falsche Eingabe" wenn ich 3 drücke, Addition, Subtraktion und Division gehen. Nur Multiplikation nicht.

    pumuckl schrieb:

    - falls es im debugger ist: hast du im release-modus oder im debugmodus compiliert?

    was is das? 🙂 Kannst du mir das erklären?



  • Oke, ich habs hinbekommen, ist zwar nichts anserst als vorher aber es geht 😮

    Naja, irgendwas hab ich wohl übersehen.

    Danke trotzdem



  • Tox!c schrieb:

    Okay...

    Leider nicht den relevanten. Wenn er niemals auch nur in dein "case 3:" reingeht, ist etwas anderes falsch.

    Tox!c schrieb:

    pumuckl schrieb:

    - falls es im debugger ist: hast du im release-modus oder im debugmodus compiliert?

    was is das? 🙂 Kannst du mir das erklären?

    Les bitte die Beschreibung deiner Entwicklungsumgebung. Gerade Debuggen ist sehr nützlich (Da kann man die Anwendung beispielsweise in Einzelschritten ausführen und genau sehen, was das Programm macht, wie die Variablenwerte sind...).

    cu André



  • Es würde uns sicher was bringen, wenn du uns den ganzen Code zeigst. Außerdem kannst du deine Funktion ändern.

    deins

    double multiplikation(double faktor1, double faktor2)
    {
        double ergebnis;
    
        ergebnis = faktor1 * faktor2;
    
        return ergebnis;
    }
    

    meins

    double multiplikation(double faktor1, double faktor2)
    {
        return faktor1 * faktor2;
    }
    


  • FreakY<3Cpp schrieb:

    Außerdem kannst du deine Funktion ändern.

    Naja. Für eine Multiplikation eine Funktion zu schreiben ist schon von Grund auf fragwürdig...

    Tox!c, setze dich unbedingt mit dem Debugger auseinander. Wie asc sagte, kann er dir sehr hilfreich sein. Gerade bei Problemen mit Zeigern oder Containern ist er praktisch unersetzlich und kann dir Stunden mühsamer Fehlersuche ersparen.



  • FreakY<3Cpp schrieb:

    Es würde uns sicher was bringen, wenn du uns den ganzen Code zeigst. Außerdem kannst du deine Funktion ändern.

    deins

    double multiplikation(double faktor1, double faktor2)
    {
        double ergebnis;
    
        ergebnis = faktor1 * faktor2;
    
        return ergebnis;
    }
    

    meins

    double multiplikation(double faktor1, double faktor2)
    {
        return faktor1 * faktor2;
    }
    

    Er kann das mit dem Ändern aber auch lassen. Das meiste wird der Compiler in der niedrigsten Optimierungsstufe eh wegbügeln. Er könnte es auch so machen:

    double multiplikation(double faktor1, double faktor2)
    {
        double ergebnis = faktor1 * faktor2;
        return ergebnis;
    }
    

    Tut sich vermutlich auch nicht so viel - gibt da aber etwas was sich "Named Return Value Optimization" nennt (NRVO).


Log in to reply