Parameter Rückgabe



  • Hallo ich Lerne gerade für eine abschussprüfung eines Moduls in der Berufsschule

    Ich habe allerdings etwas probleme mit Parametern und hoffe das mir hier geholfen werden kann.

    Die Übungsaufgabe besagt:
    Erstellen Sie ein Programm das folgende Eigenschaften besitzt:

    - Einer Funktion sum() werden zwei int-Parameter übergeben
    - Die Funktion sum() zählt die beiden Zahlen zusammen und gibt das Resultat als Rückgabewert zurück
    - In der main()-Funktion werden zwei Zahlen definiert und an die Funktion sum() übergeben
    - In der main()-Funktion wird das Resultat über die Konsole ausgegeben

    Hier mein "Programm"

    #include <stdio.h>
    
    int main(int a, int b) {
    	a = 12;
    	b = 17;
    	return a, b;
    
    	printf("%d", c);
    }
    
    int sum() {
    	int c;
    	c = a + b;
    
    	return c;
    
    }
    

    Nun ist meine Frage wie ich die beiden Werte a & b in die Funktion sum Richtig übergeben kann und c wieder zurück 😕


  • Mod

    Was du hast, ist völlig falsch. Ganz. Total. Setzen, Sechs. Wenn ich recht in der Annahme gehe, dass du das selbst geschrieben hast (und nicht zusammenkopiert, das wäre noch schlimmer), dann ist die Aufgabe derzeit noch viel zu schwer für dich. Du musst weiter zu den Grundlagen zurück. Und zwar wirklich die absoluten Grundlagen: Was ist ein Programm? Wie läuft es ab? Was ist eine Variable? Wie macht man Variablen? Was ist eine Funktion? Wie geht das mit den Funktionen? Und so weiter.

    Wenn du diese Dinge gründlich gelernt hast, dann löst sich dein Problem höchstwahrscheinlich von ganz alleine, denn die Problemstellung ist wirklich einfach. So einfach, dass ein absoluter Anfänger mit einem halben Tag Erfahrung sie problemlos lösen kann, wenn er denn wirklich aufmerksam gelernt hat.

    Ich sehe jedenfalls keinen Sinn darin, dir einfach eine Komplettlösung hinzuklatschen, die du dann sowieso nicht verstehst, und die dir jeden Grund nimmt, doch noch die Grundlagen zu lernen.



  • SeppJ schrieb:

    Was du hast, ist völlig falsch. Ganz. Total. Setzen, Sechs. Wenn ich recht in der Annahme gehe, dass du das selbst geschrieben hast (und nicht zusammenkopiert, das wäre noch schlimmer), dann ist die Aufgabe derzeit noch viel zu schwer für dich. Du musst weiter zu den Grundlagen zurück. Und zwar wirklich die absoluten Grundlagen: Was ist ein Programm? Wie läuft es ab? Was ist eine Variable? Wie macht man Variablen? Was ist eine Funktion? Wie geht das mit den Funktionen? Und so weiter.

    Wenn du diese Dinge gründlich gelernt hast, dann löst sich dein Problem höchstwahrscheinlich von ganz alleine, denn die Problemstellung ist wirklich einfach. So einfach, dass ein absoluter Anfänger mit einem halben Tag Erfahrung sie problemlos lösen kann, wenn er denn wirklich aufmerksam gelernt hat.

    Ich sehe jedenfalls keinen Sinn darin, dir einfach eine Komplettlösung hinzuklatschen, die du dann sowieso nicht verstehst, und die dir jeden Grund nimmt, doch noch die Grundlagen zu lernen.

    Auf eine Komplettlösung hoffe ich auch gar nicht aber trodzdem danke 🙂
    Und selber geschrieben ist es : 😉



  • Joel156 schrieb:

    - Einer Funktion sum() werden zwei int-Parameter übergeben

    Deine Funktion hat keine Parameter.
    main hat bei dir komischerweise die passenden dafür. Allerdings sind die Parameter bei main vom Standard vorgegeben. https://www.c-plusplus.net/forum/viewtopic.php?t=39346

    Joel156 schrieb:

    - In der main()-Funktion werden zwei Zahlen definiert und an die Funktion sum() übergeben

    Du rufst die Funktion noch nicht einmal auf.

    Joel156 schrieb:

    - In der main()-Funktion wird das Resultat über die Konsole ausgegeben

    Wenn in main das c Bekannt ist, könnte es sogar klappen.
    Allerdings wird bei einem return die Funktion verlassen. D.h. das printf wird nie erreicht.


  • Mod

    DirkB schrieb:

    Wenn in main das c Bekannt ist, könnte es sogar klappen.

    Vor allem heißt das, Joel156 hat nicht einmal probiert, das Programm zu compilieren, denn spätestens an der Stelle muss es krachen. Daher würde ich zu meinen oben genannten notwendigen Grundlagen auch noch die Arbeitsweise hinzufügen. Wenn etwas nicht einmal compiliert, dann ist es garantiert falsch und der Compiler sagt einem auch warum. 'error: ‘c’ undeclared ' oder ähnlich wird der Compiler schreien. Ebenso über 'a' und 'b'. Und wenn man noch Warnungen angemacht hat, auch etwas über die Signatur der main und den Kommaoperator im return. Und dann kann man sich jeweils fragen, wieso das so ist und was wohl nicht stimmt und wenigstens versuchen, es zu verbessern. Das hat Joel156 offensichtlich gar nicht oder nur mit wenig Enthusiasmus getan. Und das ist einer der Gründe, wieso er auch andere ähnliche Aufgaben nicht selbstständig wird lösen können, solange er diese Arbeitsweise nicht verinnerlicht.



  • Lieber Joel,
    entweder hast du im Unterricht NUR geschlafen oder NIX, aber wirklich überhaupt nichts verstanden. Selbst für eine Berufsschule ist diese Aufgabenstellung ein Witz. Ich kann mich meinen Vorrednern nur anschließen. Setzen, Sechs!
    Lern die Grundlagen!



  • Ich bin viel mehr über die Aufgabe selber schockiert. Das ist doch trivial bis zum geht nicht mehr. Das ist die Zeit nicht wert, die Aufgabe hinzuschreiben.



  • Viel schockierender ist sein Chronik:https://www.c-plusplus.net/forum/searchauthor-Joel156



  • Hallo Joel156!

    Es steht: In einer Funktion werden zwei int-Parameter übergeben.
    Da steht nix von der Hauptfunktion drin.
    Zuerst musst du die Funktion vor ihrem Aufruf in der Hauptfunktion main deklarieren, nach main definieren;

    #include <stdio.h>
    
    int sum(int summand_a, int summand_b);
    
    int main(void)
    {
     int a = 12, b = 17, ergebnis;
    
     ergebnis = sum(a, b);  
    
     printf("Ergebnisd: %d", ergebnis);
    
    return EXIT_SUCCESS;
    }
    
    int sum(int summand_a, int summand_b);
    {
     return (summand_a + summand_b);
    }
    

Anmelden zum Antworten