回 帖 发 新 帖 刷新版面

主题:求助!求最大公约数,最小公倍数为

#include <stdio.h>
void main()
{int a,b,c,d;
 int max( int a, int b);
    printf("请输入两个整数:");
    scanf("%d,%d",&a,&b);
    c=max(a,b);
    d=(a*b)/c;
    printf("这两个数的最大公约数为%d,最小公倍数为%d\n",c,d);
    printf("\n");
}
 int max( int a, int b)
{  int m,n;
   int x;
   m=a>b?a:b;
   n=a>b?b:a;
   x=m%n;
   while (x!=0)
   { m=n;
     n=x;
     x=m%n;
   }
   return n;
}
为什么结果不对啊?

回复列表 (共5个回复)

沙发

scanf("%d,%d",&a,&b);

是不是输入格式错误? %d,%d 中间有逗号,在输入的时候也要相应的输入逗号。如 24,8 这样输入。

板凳

呵呵,对哦,瞧我这糊涂的,还郁闷了半天

3 楼

2楼是对的 如果是scanf("%d,%d",&a,&b),你只输数字 不输,那是会出现乱码滴 楼主写代码一定要细心啊

4 楼

很奇怪楼主的求公约数的函数,为什么非要分的大小!?

5 楼

额,难道可以不分么?

我来回复

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