我的代码中有其他所有东西,除了我的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