Problem mit return Befehl (Achtung Anfaengerproblem)
-
Hey Leute,
ich habe letztens einen kleinen Taschenrechner gebastelt, allerdings hat er einen kleinen Schoenheitsfehler:
Meine Funktionen berechnen je nach Eingabe ein Ergebnis und geben es mithilfe von return zurueck...soweit so gut. Allerdings erscheint das Ergebnis so 2x, und zwar einmal in der cout Zeile und darunter in der return Zeile. Return weglassen kann ich ja nicht. Wie kann ich es machen? Ich seh den Wald vor lauter Baeumen nicht.
Hier der Code:
#include <iostream>
#include <cmath>
using namespace std;double addNumbers(double x, double y);
double subNumbers(double x, double y);
double mulNumbers(double x, double y);
double divNumbers(double x, double y);int main()
{
double numA;
double numB;
double result;
int choice;do
{cout << "Hello, please give me two numbers!" << endl;
cout << "Number a: " << endl;
cin >> numA;
cout << endl;cout << "Number b: " << endl;
cin >> numB;
cout << endl;cout << "What shall I do with them?" << endl;
cout << endl;
cout << "(1) addition" << endl;
cout << "(2) subtraction" << endl;
cout << "(3) multiplication" << endl;
cout << "(4) division" << endl;
cout << "(5) Exit" << endl;cin >> choice;
if (choice == 1)
{
cout << addNumbers(numA, numB) << endl;
}else if (choice == 2)
{
cout << subNumbers(numA, numB) << endl;
}else if (choice == 3)
{
cout << mulNumbers(numA, numB) << endl;
}else if (choice == 4)
{
cout << divNumbers(numA, numB) << endl;
}}
while (choice != 5);system ("PAUSE");
return 0;
}double addNumbers(double x, double y){
double answer = x + y;
cout << "The result is " << answer << endl;
return answer;
}double subNumbers(double x, double y){
double answer = x - y;
cout << "The result is " << answer << endl;
return answer;
}double mulNumbers(double x, double y){
double answer = x * y;
cout << "The result is " << answer << endl;
return answer;
}double divNumbers(double x, double y){
double answer = x / y;
cout << "The result is " << answer << endl;
return answer;
}Ist vermutlich eine simple Sache aber ich komme gerade echt nicht auf die Loesung.
Danke schon mal fuer jede Hilfe!xwarhoundx
-
Gib es eben nur einmal aus. Entscheide dich, was deine Funktionen tun sollen. Sollen sie etwas berechnen und das Ergebnis zurück geben oder sollen sie etwas berechnen und das Ergebnis ausgeben? Derzeit machen sie beides.
Tipp: Die erste Möglichkeit ist wesentlich sauberer, da die Aufgaben klarer logisch getrennt sind.
-
Okay ich bin es eben nochmal durchgegangen.
Die Ausgabe ist jetzt in der main function und nun laeuft es.
Vielen Dank!