回 帖 发 新 帖 刷新版面

主题:请各位看看,为什么运行结果不对


题目:输入两个正整数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个回复)

沙发

scanf("%d ,%d", &num1, num2);
------------------------------
lz细心啊。。

板凳

我怎么觉得算法就不对啊,而且输入num2前少了个&

3 楼

# 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 楼

这程序是全国软件专业人才设计与开发大赛上的。。

5 楼

今天看了算法书才发现这是欧几里德算法啊,把scanf改正后程序就没错了

我来回复

您尚未登录,请登录后再回复。点此登录或注册