楼主你好,首先指出一下你的编码中的几个问题:
1:在逻辑上,如果最开始的c == 0,则你的程序第九行可能导致程序直接崩掉;
2:功能上,你的while(c)里面在做啥。。。
3:代码风格上,很多语句尽量不要写到同一行,以后工作会被你团队的队友砍的,基本的缩进,变量的命名规范(命名要有意义啊,a, b, c ,d这都表示的啥?)以及书写规范(匈牙利书写法或者驼峰式);
4:功能函数最好提炼出来,独立的写到Main之外,模块化,便于管理和阅读;
5:下面是我的修改版本,楼主你测试下看是否可行(只修改了功能,编程规范上请楼主自行修改吧)
#include<iostream>
int main()
{
using namespace std;
// int a,b,c,d; //没必要一开始就把所以得变量都定义出来,等需要的时候再定义也不迟的
int a = -1, b = -1; //定义变量最好给初始值,给一个不合法的初始值
cin>>a;
cin>>b;
//此处验证一下输入的a和b是否合法
//求最小公倍数
int c = func(a, b);
//求最大公约数
int d = a * b / c;
cout<<"最小公倍数:"<<c<<endl;
cout<<"最大公约数:"<<d<<endl;
return 0;
}
//最小公倍数
int func(int m, int n)
{
int t,i = n, j = m;
while ((m%n)!=0)
{
t = n;
n = m % n;
m = t;
}
return i*j/n;
}
1:在逻辑上,如果最开始的c == 0,则你的程序第九行可能导致程序直接崩掉;
2:功能上,你的while(c)里面在做啥。。。
3:代码风格上,很多语句尽量不要写到同一行,以后工作会被你团队的队友砍的,基本的缩进,变量的命名规范(命名要有意义啊,a, b, c ,d这都表示的啥?)以及书写规范(匈牙利书写法或者驼峰式);
4:功能函数最好提炼出来,独立的写到Main之外,模块化,便于管理和阅读;
5:下面是我的修改版本,楼主你测试下看是否可行(只修改了功能,编程规范上请楼主自行修改吧)
#include<iostream>
int main()
{
using namespace std;
// int a,b,c,d; //没必要一开始就把所以得变量都定义出来,等需要的时候再定义也不迟的
int a = -1, b = -1; //定义变量最好给初始值,给一个不合法的初始值
cin>>a;
cin>>b;
//此处验证一下输入的a和b是否合法
//求最小公倍数
int c = func(a, b);
//求最大公约数
int d = a * b / c;
cout<<"最小公倍数:"<<c<<endl;
cout<<"最大公约数:"<<d<<endl;
return 0;
}
//最小公倍数
int func(int m, int n)
{
int t,i = n, j = m;
while ((m%n)!=0)
{
t = n;
n = m % n;
m = t;
}
return i*j/n;
}