Seperate Funktion funktioniert nicht wegen mir unverständlicher Fehlermeldung



  • Hallo,

    ich muss für mein Studium C lernen was auch ganz gut klappt würde es nicht immer an irgendeinem Kleinkram scheitern welcher die Motivation gegen null gehen lässt. 😡
    Also ich soll ein Pgramm selbst schreiben welches das kleinste gemeinsame vielfache sucht. Das war auch nicht schwer denn dafür gibt es nen schönen Algorithmus und das noch in einer seperaten Funktion zu verpacken ging auch.

    #include<math.h>
    #include<stdio.h>
    
    int kleinstesgv(int zahl1,int zahl2)
    {
    
    int a;
    int b;
    int kgv;
    int r;
    int ggt;
    r=1;
    a=zahl1;
    b=zahl2;
    
    while(r>0)
    {
    r = zahl1%zahl2;
    zahl1 = zahl2;
    zahl2 = r;
    ggt=zahl1;
    
    }
    
    kgv=a*b/ggt;
    
    return (kgv) ;
    
    }
    
    int main()
    {
    
    int zahl1;
    int zahl2;
    int kgv;
    scanf("%d",&zahl1);
    scanf("%d",&zahl2);
    
    kleinstesgv(zahl1,zahl2);
    
    printf("%d",kgv);
    
    }
    

    Also nicht wirklich Komplex aber er schmiert immer an nachdem ich die zahlen eingegeben hab und meint "kgv" ist beeing used without beeing initiliazed.
    Ind er Funktion kleintesgv soll der Euklidische Algorithmus durch laufen udn den größten gemeinsamen Teiler finden und mit dem wird dann das KGV berechnet.
    Das sollte mathematisch richtig sein.
    Aber wie gesagt komtm diese eine Fehlermeldung aber ich habe doch Kgv mit "int" initialisiert was ja auch reichen müsste denn es muss ja ganzzahlig sein.
    Sieht einer den kleinen blöden Fehler der alles blockiert?



  • Du hast kgv als int deklariert.

    Initialisieren tust du eine Variable, wenn du ihr einen Wert zuweist

    mach doch mal

    kgv = kleinstesgv(zahl1,zahl2);
    

    dann hat der Rückgabewert von kleinstesgv auch einen Sinn.

    Bei den Fehlermeldungen/Warnungen steht aber auch eine Zeilennummer dabei.
    Dann weiß man erstmal wo der Fehler auftaucht und kann dort nachschauen.



  • Ich trottel 😡
    Das hatte ich total vergessen und kaum steht das davor rennt alles einwandfrei.Vielen Danke 👍



  • Jaja, es ist wie verhext.

    Kaum macht man es richtig, funktioniert es! 😃

    Kenne ich (leider) auch. 😞



  • Ich mache eigentlich immer alles richtig.

    Nur dieser saublöde Compiler weiß entweder nicht, was ich will oder er macht absichtlich so vieles falsch! Frech, frech!



  • Debuggen ist der Vorgang um Fehler in einem Programm zu finden,
    und programmieren ist der Vorgang um Fehler in einem Programm zu machen.


Anmelden zum Antworten