-3
我想寫一個GCD函數來計算使用歐幾里德算法的兩個整數的gcd。在函數中,如果我刪除「其他」,則輸出3,這是不正確的。但是,如果我使用「其他」它輸出1這是正確的輸出。我假設如果我不使用「其他」功能仍然是正確的。爲什麼我得到兩個不同的輸出。如果我從函數中刪除「else」,爲什麼輸出不同?
這裏是我的代碼,
#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;
}
「if」分支沒有返回值。 –
當'x%y == 0'時,你的函數不會返回;這是未定義的行爲 – Justin
感謝您的幫助.. :) –