Structure-Chart nachbauen - Parameter und Aufruf Funktionen



  • Hallo zusammen,

    ich bin momentan dabei ein C-Programm zu implementieren welches folgendes Structur-Chart umsetzen soll: https://www.imgur.com/a/dvut7

    Das ist mein erstes Programm mit mehreren Funktionen, habt Nachsicht! 😃

    Bisher ist folgender Code zusammen gekommen:

    #include <stdlib.h>
    #include <conio.h>
    #include <stdio.h>
    
    void f11(void);
    int f12(int iA);
    void f13(void);
    void f21(void);
    int f22(int iB);
    int f32(int iC);
    
    int iA, iB, iC;
    
    int main()
    {
        f11();
        f12(iA);
        f13();
    }
    
    void f11()
    {
        f21();
    }
    
    void f21()
    {
    ;
    }
    
    int f12(iA)
    {
        f22(iB);    
    
        return iF;
    }
    
    int f22(iB)
    {
    
       return iE;
    }
    
    int f32(iC) 
    {
    
        return iD;
    }
    
    void f13()
    {
    ;
    }
    

    Könnt ihr mir feedback geben? Würde man die Funktionen in der Reihenfolge definieren oder eher von links nach rechts?

    Danke euch!



  • Natürlich muss in Funktion int f22(iB){} noch f32() aufgerufen werden!



  • breezy schrieb:

    Könnt ihr mir feedback geben?

    Keine globalen Variablen.
    (vorletzte Zeile in der Aufgabe: iF ist eine lokale ...)

    Bei der Funktionsdefinition gehört auch der Typ in dei Parameterliste.

    breezy schrieb:

    Würde man die Funktionen in der Reihenfolge definieren oder eher von links nach rechts?

    Alphabetisch (oder hier auch numerisch) sortiert.

    Passt schon, so wie du es gemacht hast.



  • - conio.h ist kein C Standard
    - void funktion(void) Funktionen machen keinen Sinn (weil sie u.a. globale Variablen bedingen...)
    - stelle die Compilerwarnschwelle höchstmöglich
    - Funktionsdefinitionen sollen immer genau dem zuvor definierten Prototyp entsprechen, also z.B. nicht

    int f12(int iA);
    ...
    int f12(iA)
    {}
    


  • Danke euch schon mal für die Antworten!

    Ich hab das Programm nun abgeändert:

    /**
    *
    *
    *
    *
     */
    
    #include <stdlib.h>
    #include <conio.h>
    #include <stdio.h>
    
    int f11(void);
    int f12(int iA);
    int f13(void);
    int f21(void);
    int f22(int iB);
    int f32(int iC);
    
    int main()
    {
    	f11();
    	f12(int iA);
    	f13();
    }
    
    int f11()
    {
    	f21();
    }
    
    int f21()
    {
    }
    
    int f12(int iA)
    {
    	static int iF;
    	f22(int iB);
    
    	return iF;
    }
    
    int f22(int iB)
    {
    	static int iE;
    	f32(int iC);
    	return iE;
    }
    
    int f32(int iC)
    {
    	static int iD;
    	return iD;
    }
    
    int f13()
    {
    }
    

    Beim compilieren motzt er:

    Line 22 Error C2059 syntax error: ')'
    Line 22 Error C2198 'f32': too few arguments for call
    Line 22 Error C2143 syntax error: missing ')'
    Line 22 Error C2059 syntax error: ')'
    Line 22 Error C2198 'f22': too few arguments for call
    Line 22 Error C2143 syntax error: missing ')' before 'type'
    Line 22 Error C2059 syntax error: ')'
    Line 22 Error C2198 'f12': too few arguments for call
    Line 22 Error C2143 syntax error: missing ')' before 'type'

    Too few arguments to call, habe ich was vergessen?



  • Line 22 Error C2059 syntax error: ')'
    Line 22 Error C2198 'f32': too few arguments for call
    Line 22 Error C2143 syntax error: missing ')'
    Line 38 Error C2059 syntax error: ')'
    Line 38 Error C2198 'f22': too few arguments for call
    Line 38 Error C2143 syntax error: missing ')' before 'type'
    Line 46 Error C2059 syntax error: ')'
    Line 46 Error C2198 'f12': too few arguments for call
    Line 46 Error C2143 syntax error: missing ')' before 'type'

    Hier mit korrekter Zeilenangabe


  • Mod

    breezy schrieb:

    Too few arguments to call, habe ich was vergessen?

    Nein, du hast zu viel. Das kommt davon, wenn man mit Copy&Paste programmiert. Guck dir Zeile 22 noch mal genau an.



  • Warum hast du die lokalen Variablen als static definiert?


Anmelden zum Antworten