注册 登录
编程论坛 C++教室

新手入门,一道很简单的题,帮忙看下哪里错了,谢谢

md1438 发布于 2017-03-22 14:40, 1509 次点击
#include <stdio.h>
int main(void)
{
    int m, n, j, k;   /* j表示最小公倍数,k表示最大公约数 */

    scanf("%d%d",&m,&n);
    j = m;
    while (j%n!=0) ;  /* 调试时设置断点 */
    {
        j = j + n;
     k = (m * n) / j;     /* 调试时设置断点 */
    }   
    printf("最小公倍数是%d\n最大公约数是%d\n", j, k);
    return 0;
}

题目是输入两个数,输出它们的最小公倍数和最大公约数。
我输入2 5,按回车,没有输出的数。
输入6 3,输出的是最小公倍数6,最大公约数是2293576。

[此贴子已经被作者于2017-3-22 16:23编辑过]

3 回复
#2
rjsp2017-03-22 15:20
“哪里错了”应当由你告诉别人,别人是猜不出你认为哪里错了
若编译失败,贴出编译器给出的错误信息
若运行结果不符合你的预期,贴出 你想完成什么功能、你输入了什么、实际输出了什么、期待输出什么。
#3
luoj752017-03-22 17:14
#include <stdio.h>
int main(void)
{
    int m, n, j, k;   /* j表示最小公倍数,k表示最大公约数 */

    scanf("%d%d",&m,&n);
    for(j=m;;j++){
        if((j%n==0)&&(j%m==0))break;
    }
    for(k=2;k<m&&k<n;k++){
        if((m%k==0)&&(n%k==0)) break;
    }
    printf("最小公倍数是%d\n最大公约数是%d\n", j, k);
    return 0;
}
#4
md14382017-03-22 21:07
回复 3楼 luoj75
谢谢帮忙,但你的输入2 5,输出最大公约数是2,是错的。是不是哪里计算有问题?
1