Übergabe von werten nach main und von main



  • int main(int *m)
    {

    eingabe(); // ab hier geht dass Program in eingabe
    /* und genau hier hin soll die Variable m aus dem Programm eingabe übergeben werden*/
    if (*m==1)
    summe();
    if (*m==2)
    multi();
    else
    printf ("Eingabe Falsch");
    eingabe ();
    }

    int eingabe()
    {
    int m=0;
    printf ("Der Vektor hat Standardmaesig die Werte\n x=%d\n y=%d\n z=%d\n", x, y,z);
    printf ("summe 1\n");
    printf ("produkt 2\n");
    scanf ("%d", &m);
    main (&m);
    }

    Könnte mir jemand helfen wie ich mein Programm richtig zum laufen bekomme die übergabe von m findet nämlich ganz oben in main statt und deswegen bildet sich eine Endlosschleife mit dem Programm Eingabe!!!

    Bin für jede Hilfe dankbar!!



  • nimm den main() aufruf aus der eingabe() raus

    wieso hat deine main() einen int* als parameter?
    zahlen sind int, nicht int*

    steck deinen code mal in [ cpp ] tags



  • 1. Da C keine Funktionsüberladung kennt, ist deine main Funktion falsch. Der Standard garantiert main nur mit folgenden Signaturen

    int main(void)
    int main(int argc, char* argv[])
    

    2. Prüfe auf falsche Eingaben bereits in eingabe(), denn dort passt es besser rein.

    3. Wozu hat eingabe() einen Rückgabewert, wenn dieser nicht genutzt wird? Wie wärs, wenn du den für deine Eingabe nutzt?

    4. Um eine zyklische Bearbeitung zu erreichen, musst du in main eine Schleife einbauen. Natürlich fliegt der main Aufruf in eingabe() raus. In der Schleife rufst du dann eingabe() auf und lässt diese solange laufen, bis eine bestimmte Eingabe gemacht wurde. Dafür kannst du ja einen zusätzlichen Eingabewert einführen, zB 0.


Anmelden zum Antworten