c++求两个整数最大公约数 和最小公倍数?

时间:2022-11-11 00:37:13
c++
#include<iostream>
using namespace std;
int main(){
int f1(int,int);
int f2(int,int,int);
int a,b,x,k;
cout<<"请输入两个数"<<endl;
cin>>a,b;
x=f1(a,b);
cout<<"最大公约数"<<x<<endl;
k=f2(a,b,x);
cout<<"最小公倍数"<<k<<endl;
return 0;}
int f1(int a,int b){
int t,r;
if (b>a)
{ t=a;a=b;b=t;}
while ((r=a%b)!=0)
{a=b;b=r;}
return(b);}
int f2(int a, int b,int x){
return((a*b)/x);}


代码错哪了呢
为什么一直没法运行
实在找不出错在哪

7 个解决方案

#1


代码功能归根结底不是别人帮自己看或讲解或注释出来的;而是被自己静下心来花足够长的时间和精力亲自动手单步或设断点或对执行到某步获得的中间结果显示或写到日志文件中一步一步分析出来的。
提醒:再牛×的老师也无法代替学生自己领悟和上厕所!
单步调试和设断点调试(VS IDE中编译连接通过以后,按F10或F11键单步执行,按Shift+F11退出当前函数;在某行按F9设断点后按F5执行停在该断点处。)是程序员必须掌握的技能之一。

#2


cin>>a,b;这句不对,改成cin>>a>>b;

#include<iostream>
using namespace std;
int main(){
int f1(int, int);
int f2(int, int, int);
int a, b, x, k;
cout << "请输入两个数" << endl;
cin >> a >> b;
x = f1(a, b);
cout << "最大公约数" << x << endl;
k = f2(a, b, x);
cout << "最小公倍数" << k << endl;
return 0;
}
int f1(int a, int b){
int t, r;
if (b>a)
{
t = a; a = b; b = t;
}
while ((r = a%b) != 0)
{
a = b; b = r;
}
return(b);
}
int f2(int a, int b, int x){
return((a*b) / x);
}

#3


cin>>a,b; 

改成

cin >> a >> b

#4


关于自己是否适合编程的很简单的测试:
在报纸或杂志上随便找一段约1000字的文章,在Word中输入一遍。输完后再参考下面答案:

A里面有10处以上文字或标点错误
B里面没有文字或标点错误并敢为此跟人打赌
C里面没有文字或标点错误并且字体和排版完全与原稿一致
D打印在半透明的纸上和原稿重叠在一起检查一模一样,且自我感觉很有成就感

A不适合编程(理由:打字准确度偏低、粗心大意)
B初级程序员(理由:打字准确度很高、认真细致、自信、理解全角半角概念)
C高级程序员(理由:在B的基础上理解字体和排版也是电脑打印的重要因素、但相比D还不够偏执、精益求精、结果可验证)
D软件项目经理(理由:能针对项目给出令人信服的细致到极点的需求说明和典型测试用例。用户几乎挑不出毛病。专业!)

如果想从A变成B的话,到我的资源 http://download.csdn.net/detail/zhao4zhong1/4084259里面下载“适合程序员的键盘练习”

#5


就是一个小错误啦,
cin>>a,b;应该改成cin<<a<<b;
仔细一点,下次就不会错啦!

#6


请看2 3 5楼  说实话没见过cin后面有,的

#7


请看2 3 5楼  说实话没见过cin后面有,的

#1


代码功能归根结底不是别人帮自己看或讲解或注释出来的;而是被自己静下心来花足够长的时间和精力亲自动手单步或设断点或对执行到某步获得的中间结果显示或写到日志文件中一步一步分析出来的。
提醒:再牛×的老师也无法代替学生自己领悟和上厕所!
单步调试和设断点调试(VS IDE中编译连接通过以后,按F10或F11键单步执行,按Shift+F11退出当前函数;在某行按F9设断点后按F5执行停在该断点处。)是程序员必须掌握的技能之一。

#2


cin>>a,b;这句不对,改成cin>>a>>b;

#include<iostream>
using namespace std;
int main(){
int f1(int, int);
int f2(int, int, int);
int a, b, x, k;
cout << "请输入两个数" << endl;
cin >> a >> b;
x = f1(a, b);
cout << "最大公约数" << x << endl;
k = f2(a, b, x);
cout << "最小公倍数" << k << endl;
return 0;
}
int f1(int a, int b){
int t, r;
if (b>a)
{
t = a; a = b; b = t;
}
while ((r = a%b) != 0)
{
a = b; b = r;
}
return(b);
}
int f2(int a, int b, int x){
return((a*b) / x);
}

#3


cin>>a,b; 

改成

cin >> a >> b

#4


关于自己是否适合编程的很简单的测试:
在报纸或杂志上随便找一段约1000字的文章,在Word中输入一遍。输完后再参考下面答案:

A里面有10处以上文字或标点错误
B里面没有文字或标点错误并敢为此跟人打赌
C里面没有文字或标点错误并且字体和排版完全与原稿一致
D打印在半透明的纸上和原稿重叠在一起检查一模一样,且自我感觉很有成就感

A不适合编程(理由:打字准确度偏低、粗心大意)
B初级程序员(理由:打字准确度很高、认真细致、自信、理解全角半角概念)
C高级程序员(理由:在B的基础上理解字体和排版也是电脑打印的重要因素、但相比D还不够偏执、精益求精、结果可验证)
D软件项目经理(理由:能针对项目给出令人信服的细致到极点的需求说明和典型测试用例。用户几乎挑不出毛病。专业!)

如果想从A变成B的话,到我的资源 http://download.csdn.net/detail/zhao4zhong1/4084259里面下载“适合程序员的键盘练习”

#5


就是一个小错误啦,
cin>>a,b;应该改成cin<<a<<b;
仔细一点,下次就不会错啦!

#6


请看2 3 5楼  说实话没见过cin后面有,的

#7


请看2 3 5楼  说实话没见过cin后面有,的