作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
所以我尝试为我刚开始学习C++的 friend (我有一些C++的基础知识)做一个寻找GCD(Greatest Common Divisor)的函数。所以这是我的代码:
int gcd(int var1, int var2){
int result;
if(var1<1 || var2<1){
return 0; //means error
} else {
for(int i=0; i<=var1 && i<=var2; i++){
if((var1%i) == 0 && (var2%i) == 0){
result = i;
}
}
}
return result;
}
已编译,但问题是 .exe 在尝试使用运算符“%”时停止工作。在这种情况下,在这行代码中:var1%i
和 var2%i
。因此,我尝试将代码稍微调整一下:
int gcd(int var1, int var2){
int result;
if(var1<1 || var2<1){
result = 0; //means error
} else {
for(int i=var1; i>=1; i--){
if((var1%i) == 0 && (var2%i) == 0){
result = i;
break;
}
}
}
return result;
}
而且它没有任何问题。所以,我想知道第一个代码有什么问题?
最佳答案
你不能 % by 0 因为它会产生被零除的异常。您需要在第一个循环中从 1 而不是 0 开始 i。
关于c++ - 最大公因数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33790486/
我是一名优秀的程序员,十分优秀!