程序运行时出现未经处理的异常应该如何处理,出现问题的函数是用来求最大公约数的
希望有人能修改
把求公约数的函数gys()里的for循环的条件修改下,改为:for(int i=b;i>=1;i--),即判断从两个数中小的那个数到1之间哪个是两数的最大公约数即可 ,修改如下:
参考链接:
https://jingyan.baidu.com/article/48b37f8d3e859d5b646488a1.html
#include <iostream>
using namespace std;
int max(int a,int b,int c){
int d = a>b?a:b;
d = d>c?d:c;
return d;
}
int min(int a,int b,int c){
int x = a<b?a:b;
x = x<c?x:c;
return x;
}
int gys(int q,int b){
int i,x=1;
for(int i=b;i>=1;i--){
if(q%i==0&&b%i==0){
x=i;
// cout<<"int for:x="<<x<<endl;
break;
}
}
// cout<<"int gys:x="<<x<<endl;
return x;
}
int main(void){
int a,b,c,m,n,gyshu;
cin>>a>>b>>c;
m=max(a,b,c);
n=min(a,b,c);
gyshu=gys(m,n);
cout<<"公约数为:"<<gyshu<<endl;
cout<<(n/gyshu)<<'/'<<(m/gyshu);
return 0;
}