程序写出来了,运行之后无响应。能帮一下小弟吗?
/*2013年3月18日14:25:50
题目:写两个函数,分别求出2个整数的最大公约数和最小公倍数,用主函数调用2个函数,并输出结果,2个数由键盘输入。
*/
#include <iostream>
#include <iomanip>
using namespace std;
int sum=1;
int main(void)
{
int num1, num2, max1, min1;
int max(int x,int y);
int min(int x,int y);
cout<<"plese input two number you want , separation by space\n";
cin>>num1>>num2;
max1=max(num1,num2);
min1=min(num1,num2);
cout<< "最大公约数是 "<<max1<<setw(5)<<"最小公倍数是"<<min1<<endl;
return 0;
}
int max(int x,int y) //原理求出2个数的所有因子,取相同的因子相乘即为最大公约数
{
int k, j;
if (x>y)
j=x;
else
j=y;
for(k=1;k<=j;j++)
{
if ((j%k==0)&&(j%k==0))
sum=sum*k;
}
return sum;
}
int min(int x,int y) //原理最小公倍数=两数乘积/最大公约数
{
int pro, min;
pro=x*y;
min=pro/sum;
return min;
}
运行结果在输入整数之后程序一直无响应,最后关闭! 我自己看了很多遍始终不知道问题在那里。。 能指导下么?
[解决办法]
int max(int x,int y);
int min(int x,int y);
函数声明哪有写在main里面的!
[解决办法]
剩下的自己调试!
[解决办法]
for(k=1;k<=j;j++)//这一行后面怎么是j++,死循环了吧
{
if ((j%k==0)&&(j%k==0))
sum=sum*k;
}
[解决办法]
写里面也是可以的,不过写在main前面会比较规范点