读书人

程序写出来了运行之后无响应。能帮一

发布时间: 2013-03-21 10:08:17 作者: rapoo

程序写出来了,运行之后无响应。能帮一下小弟吗?

/*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;
}

[解决办法]
引用:
谢谢啦。。


引用:int max(int x,int y);
int min(int x,int y);
函数声明哪有写在main里面的!
我看的书,函数声明都是写在main函数里面。。。。 应该写在那里呢?

写里面也是可以的,不过写在main前面会比较规范点

读书人网 >C++

热点推荐