主题:请各位看看,为什么运行结果不对
bingaicao
[专家分:0] 发布于 2011-05-13 16:42:00
题目:输入两个正整数m和n,求其最大公约数和最小公倍数。
我输入75 35 结果是3 和75 为什么?
# include <stdio.h>
main ()
{
int a, b, num1, num2,temp;
printf("please input two numbers: \n");
scanf("%d ,%d", &num1, num2);
if (num1<num2)
{
temp = num1;
num1 = num2;
num2 = temp;
}
a = num1;
b = num2;
while(b != 0)
{
temp = a%b;
a = b;
b = temp;
}
printf ("gongyueshu:%d \n", a);
printf ("goneyueshu:%d \n", num1*num2 / a);
getchar ();
return 0;
}
回复列表 (共5个回复)
沙发
fragileeye [专家分:1990] 发布于 2011-05-13 21:02:00
scanf("%d ,%d", &num1, num2);
------------------------------
lz细心啊。。
板凳
killergsm [专家分:90] 发布于 2011-05-13 21:06:00
我怎么觉得算法就不对啊,而且输入num2前少了个&
3 楼
killergsm [专家分:90] 发布于 2011-05-13 21:14:00
# include <stdio.h>
main ()
{
int i,num1, num2,temp;
printf("please input two numbers: \n");
scanf("%d%d", &num1, &num2);
if (num1<num2)
{
temp = num1;
num1 = num2;
num2 = temp;
}
for(i = 1; i <= num2; i++)
{
if(num2 % i == 0 && num1 % i == 0)
temp = i;
}
printf ("gongyueshu:%d \n", temp);
printf ("goneybeishu:%d \n", num1*num2 / temp);
getch();
return 0;
}
4 楼
cookles13 [专家分:0] 发布于 2011-05-14 12:44:00
这程序是全国软件专业人才设计与开发大赛上的。。
5 楼
killergsm [专家分:90] 发布于 2011-05-14 14:39:00
今天看了算法书才发现这是欧几里德算法啊,把scanf改正后程序就没错了
我来回复