我的代碼中有其他所有東西,除了我的do-while循環的計算每次都會變爲零。我不知道爲什麼會發生這種情況。這裏是代碼的功能:(我必須使用do while循環)不正確的GCD算法
編輯:即使在添加括號後,它仍然會變爲0.我使用的示例輸入是200和45。答案應該出來5正確嗎?
int calculate_GCD(int value1, int value2){
int big;
int small;
int r; //remainder
int GCD;
if(value1>value2){
big = value1;
small = value2;
}
else{
big = value2;
small = value1;
}
do{
r = big % small;
if(r == 0)
GCD = small;
else{
big = small;
small = r;
}
}
while(r != 0);
return(GCD);
}
任何幫助表示讚賞謝謝。
你寫的代碼,所以你知道發生了什麼。只需使用調試器即可手動查看它出錯的地方。以一個示例輸入爲例,通過代碼查看它與預期的偏離的位置... – PaulMcKenzie
如果r是兩個整數之間的整數除法的餘數,它肯定會變爲0! – morepaolo
關於你的編輯:更正的代碼工作正常,你記得重新編譯? – Leeor