Wieso geht das nicht?
-
Hallo,
habe folgenden Code in Visual Studio 2010 Ultimate geschrieben, dort wird mir gesagt, dass "addition()" einen Wert ausgeben muss.
In Bloodshed funktioniert der Code einwandfrei. Wieso nicht in Visual Studio 2010?
#include <cstdlib> #include <iostream> using namespace std; int addition(int Zahl1, int Zahl2) { int Ergebnis; Ergebnis = Zahl1 + Zahl2; cout << endl << endl << Ergebnis; } int main() { int Zahl1; int Zahl2; cout << "Zahl1: "; cin >> Zahl1; cout << endl; cout << "Zahl2: "; cin >> Zahl2; addition(Zahl1, Zahl2); system("PAUSE"); return EXIT_SUCCESS; }
-
Kowalski schrieb:
In Bloodshed funktioniert der Code einwandfrei. Wieso nicht in Visual Studio 2010?
Weil er falsch ist. Je nachdem, was die Funktion machen soll, fehlt entweder ein return-Statement, oder die Funktion sollte den Ergebnistyp void haben. Du solltest dich eher fragen, warum er in Bloodshed funktioniert...
-
Compiliert das gar nicht? Eigentlich ist es "nur" undefiniertes Verhalten und sollte daher bloß eine Warnung geben. Aber sei doch froh, dass der Compiler es ganz verhindert, denn falsch ist es in jedem Fall (siehe oben).
-
Wie wäre es denn dann richtig?
Und warum Bloodshed das dann macht wundert mich echt :o
-
Kowalski schrieb:
Wie wäre es denn dann richtig?
Was soll es denn machen? Rückgabetyp, Name, Aufruf und Verhalten der Funktion passen bei dir allesamt nicht zusammen.
-
Ich möchte für jede Grundrechenart später eine eigene Funktion haben.
Also eine Funktion "Addition", eine "Subtraktion", usw.
Und dann möchte ich in main() nur die Zahlen eingeben lassen und danach auswählen lassen, welche Rechenart man haben möchte und dann soll die jeweilige Funktion geöffnet werden.
-
SeppJ schrieb:
Was soll es denn machen?
-
Es soll die gewünschte Rechenart durchführen mit den Zahlen, die aus main() übergeben werden und dann die Ausgabe von dem Ergebnis machen.
-
void addition(int Zahl1, int Zahl2) { int Ergebnis; Ergebnis = Zahl1 + Zahl2; cout << endl << endl << Ergebnis; }
-
Dann ändere den Rückgabetyp von
additionvonintnachvoid.
-
Dankeschön, funktioniert!
