Unterfunktion übergibt nicht den Übergabewert an die Hauptfunktion
-
#include <iostream.h>
int berechnung(int laenge,int breite);
int main()
{
int flaeche = 0, breite = 0, laenge = 0;cout << "Breite? ";
cin >> breite;cout << endl << "Laenge? ";
cin >> laenge;cout << endl;
berechnung(laenge,breite);
cout << "Flaeche: " << flaeche << endl;
cin.get();
cin.get();return 0;
}int berechnung(int laenge,int breite)
{
int flaeche = 0;
flaeche = laenge * breite;return flaeche;
}//Wenn ich das Programm ausführe wird Fläche mit 0 angezeigt,warum?Fläche wird doch an die Hauptfunktion übergeben,oder?
-
Durch das return bewirkst du ja nur, dass die Funktion die Fläche zurückgibt.
Die musst du jetzt auch noch aufschnappen:
flaeche = berechnung(laenge,breite);
statt
berechnung(laenge,breite);
MfG MAV
-
//#include <iostream.h> // veraltet #include <iostream> using namespace std; int berechnung(int laenge,int breite); //int main() int main(void) { //int flaeche = 0, breite = 0, laenge = 0; int breite, laenge; cout << "Breite? "; cin >> breite; cout << endl << "Laenge? "; cin >> laenge; cout << endl; //berechnung(laenge,breite); // wohin übergibt die funktion den wert? // es müsste eigentlich einen compilerfehler geben int flaeche = berechnung(laenge,breite); cout << "Flaeche: " << flaeche << endl; //cin.get(); cin.sync(); // eingabebuffer leeren return 0; } int berechnung(int laenge,int breite) { //int flaeche = 0; //flaeche = laenge * breite; return (lange * breite); }
mfg
-
die funktion berechnen() gibt zwar den wert zurück aber er wird nirgendwo aufgefangen.
du musst den rückgabewert auch irgendwo reinschreiben.flaeche = berechnung(laenge,breite);
jetzt kannst du den berechneten wert in deinem main ausgeben.
gruß
tody
-
Achso,dachte indem ich in der Unterfunktion in die Variable flaeche schreibe müsste ich das in der Hauptfunktion nicht mehr tun,naja falscher Denkansatz wohl.
Danke an die Verfasser der Beiträge