Ich versuche, eine GCD-Funktion zu schreiben, um gcd zweier ganzer Zahlen mit dem euclids-Algorithmus zu berechnen. Wenn ich in der Funktion "else" lösche, gibt es 3 aus, was falsch ist. Aber wenn ich "else" verwende, gibt es 1 aus, was die korrekte Ausgabe ist. Ich nehme an, wenn ich "else" nicht verwende, ist die Funktion noch richtig. Warum bekomme ich zwei verschiedene Ausgänge. Warum unterscheidet sich die Ausgabe, wenn ich "else" von der Funktion lösche?
Hier ist mein Code,
#include <iostream>
using namespace std;
int euclidGcd(int x , int y){
if(x%y!=0)
euclidGcd(y , x%y);
else
return y;
}
int main(){
cout<<euclidGcd(2,3)<<"\n";
return 0;
}
Der 'if'-Zweig gibt keinen Wert zurück. –
Wenn 'x% y == 0', kehrt Ihre Funktion nicht zurück. das ist undefiniertes Verhalten – Justin
danke für die Hilfe .. :) –