C Funktionen
-
Hallo,
ich bin gerade beim Thema Funktionen und hab da irgenwie noch "Wissenslücken"
Also mit gaaaaaanz einfachen Funktionen mit Textausgabe komme ich klar.// Funktion text # include <stdio.h> void hilfe (void) { printf("Das ist eine Funktion\n"); } int main(void) { hilfe(); hilfe(); return 0; }
Aber bei folgenden fehlt mir noch etwas bis "Der Groschen fällt".
Hier mal ein Bsp.:
//Funtion INT # include <stdio.h> # include <stdlib.h> int eingabe(); int verarbeitung(); int ausgabe(); int main(void) { eingabe(); verarbeitung(); ausgabe(); return 0; } int zahl1,zahl2,ergebnis=0; int eingabe() { printf("Bitte geben sie die 1. Zahl ein\n"); scanf("%d",&zahl1); printf("Bitte geben sie die 2. Zahl ein\n"); scanf("%d",&zahl2); return (zahl1); return (zahl2); } int verarbeitung() { ergebnis=zahl1+zahl2; return (ergebnis); } int ausgabe() { printf("Sie Ergebnis ist: %d\n",ergebnis); system("PAUSE"); return 0; }
1.) Vielleicht kann mir jemand mal kurz erklären wie das hier abläuft vor allem Zeile 12 bis 15. Warum ich die Funktion nochmal nach main() aufrufen muß?
2.) Kann man dieses Bsp. noch optimieren wenn ja wie? (aber nur wenn das nicht zu kompliziert wird)?
--------------------------------------------------------------------------------
und hier das "Problem Beispiel"
Es sollen jeweils für das Menü, Werte Eingabe, Verarbeitung und Ausgabe eine Funktion erstellt werden.
Dann Sollen 3 Zahlen entweder addiert oder subdrahiert werden und
es erfolgt die Ausgabe es Ergebnisses.//fkt002 #include <stdio.h> #include <stdlib.h> int menu(); int werte(); int verarbeitung(); int ausgabe(); int main(void) { menu(); werte(); verarbeitung(); ausgabe(); return 0; } int menu,zahl1,zahl2,zahl3,ergebnis=0; int menu() { printf("Bitte wählen sie aus:\n"); printf("Addition 1\n"); printf("Subtraktion 2\n"); scanf("%d",&menu); return (menu); if (menu==1) { //Anweißung Addition } if (menu==2) { //Anweisung Subtraktion } else //Fehleingabe system("PAUSE"); return 0; }
Weiter bin ich leider noch nicht.
Sorry für den vielen Code
Als Compiler benutze ich Dev C++Danke
maik_gyver
-
Also die Funktionen werden nicht nochmal aufgerufen, nur weil sie unterhalb von main stehen, die könnten auch drüber stehen.
Das Programm startet oben in der main funktion und arbeitet dann die funktionen ab, die du in deiner main funktion aufrufst. Bei "return 0" in main ist deine main funktion zu Ende und das Programm auch.Das mit return hast du sowieso nicht richtig verstanden. Wenn du in einer Funktion irgendwo ein return stehen hast, dann wird diese beendet, sobald diese Stelle erreicht wurde, und das Programm springt wieder zur aufrufstelle zurück und macht danach weiter.
Die zwei return nacheinander bringen also garnix. Die Werte stehen sowieso in globalen variablen so, dass du nix zurückgeben musst.Das return in der Mitte deiner menu Funktion dürfte auch das Problem sein.