为了账号安全,请及时绑定邮箱和手机立即绑定

我自己写的,请问到底是哪儿错了呢?

我自己写的,请问到底是哪儿错了呢?

C++
MMTTMM 2022-12-22 21:17:36
编写函数Gcd求两个正整数的最大公约数,将此公约数返回。主函数中读入两个正整数m和n,调用Gcd函数,求m和n的最大公约数和最小公倍数.说明:(1)函数原型为 int Gcd(int ,int );(2)如果输入的m和n中有一个不是正整数,则用语句cout<<"error input.\n"; 输出提示信息,程序结束(3)复制下列语句输出结果: cout<<"Gcd="<<…<<",Lcm="<<…<<endl; 此句中两处省略号处替换成你求最大公约数和最小公倍数的表达式#include<iostream>using namespace std;int GCD(int m,int n);  int GCD(int m,int n){  if(m<0)cout<<"error input.\n";else if (m < n&&m>0){int tmp = m;m = n;n = tmp;}if (n == 0)return m;elsereturn GCD(n,m % n);}int main(){  int m,n,gcd;cin>>m>>n;gcd=GCD(m,n); cout<<"Gcd="<<gcd<<",Lcm="<<m*n/gcd<<endl; system("pause");return 0;}
查看完整描述

1 回答

?
RISEBY

TA贡献1856条经验 获得超5个赞

#include<iostream>using namespace std;int GCD(int m,int n);                 int GCD(int m,int n){      if(m<=0 || n<=0)//非正整数 包括0    {    cout<<"error input.\n";    exit(0);//要求程序退出    } if (m < n){int tmp = m;m = n;n = tmp;}if (n == 0)return m;elsereturn GCD(n,m % n);}int main(){     int m,n,gcd;    cin>>m>>n; gcd=GCD(m,n);   cout<<"Gcd="<<gcd<<",Lcm="<<m*n/gcd<<endl;  //system("pause");这个调试的时候可以用 如果是自动判断系统 不要加这句 return 0;}


查看完整回答
反对 回复 2022-12-25
  • 1 回答
  • 0 关注
  • 49 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信