GGT-Programm



  • Hallo hab eben zur Übung ein Programm geschrieben, was denn GGT ermitteln soll, aber irgedwie klappt das nicht richtig, denn an Stelle vom GGT wird einfach die kleinere von beiden Zahlen ausgegeben... könnt ihr mir bitte helfen und sagen wo der Fehler liegt???

    int ggt(int z1, int z2)
    {
        int temp, teiler;
    
        if(z1 < z2)          //Die kleiner von beiden Zahlen soll in z1 
                             //gespeichert sein
        {
            temp = z1;
            z1 = z2;
            z2 = temp;
        }       
    
        do
        {
            teiler = z2 % z1;    //hab gedacht es wird geprüft wo es kein Rest gibt
            z1--;                //das wäre dann der GGT
        }
        while(teiler != 0);      
    
        return(z1 + 1);  
    }
    


  • Da hilft unser alter Freund Euklid ;):

    //a ist der ggt
    int ggt(int a, int b) {
      int r;
      do {
        r = a%b;
        a = b;
        b = r;
      } while(b!=0);
      return a;
    };
    

    EDIT: Funktion drumrumgebaut



  • thanks!!


Anmelden zum Antworten