标题:大虾帮忙
只看楼主
leexianjun
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2005-6-12
 问题点数:0 回复次数:7 
大虾帮忙
/*输入两个整数,打印出最大公约数和最小公倍数*/
#include<stdio.h>
main()
{
    int a,b,i,j,t ;
    lable :
    printf("please input tow integers:\n");
    scanf("%d%d",&a,&b);
    if(!(a>0&&b>0))
    {
        printf("error!please input again\n");
        goto lable ;
    }
    if(a<b)
    {
       t=a;
       a=b;
       b=t;
     }
     /*求最大公约数*/      
    for(i==b;i>=1;i--)
    {
        if((a%i==0)&&(b%i==0))break ;
    }
    printf("GongyueshuMAX:%d\n",i);
    /*求最大公倍数*/
    for(j==a;;j++)
    {
        if((j%a==0)&&(j%b==0))break ;
    }
    printf("GongbeishuMIN:%d\n",j);
}
搜索更多相关主题的帖子: 最小公倍数 include please 公约数 
2005-09-24 15:05
leexianjun
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2005-6-12
得分:0 
求最大公约数时是正确的,但是求最小公倍数是错了
比如说输入 2和4 显示出来的是 2 2424

生活就像一杯茶,越品越香;烦恼就像茶叶,滋润生活!
2005-09-24 15:09
jackrain
Rank: 1
等 级:新手上路
帖 子:182
专家分:0
注 册:2005-9-4
得分:0 

/*--------欧几理得辗转相除法求最大公因数------------*/ #include <stdio.h> #include <stdlib.h>

void main() { int m, n, temp1, temp2,temp; while(1) { printf("Please input tow non-integer:"); if(scanf("%d %d", &m, &n) != 2) { fflush(stdin); continue; } else break; } m < n ? (temp1 = n, temp2 =m) : (temp1 = m, temp2 = n); temp = temp2; do { temp2 = temp; temp = temp1 % temp2; temp1 = temp2; }while(temp); printf("GCD(%d,%d) = %d\n", m, n, temp2); printf("LCM(%d,%d) = %d\n", m, n, m*n/temp2); }


程序和身体一样,健壮,再健壮! 我爱C++
2005-09-24 15:45
jackrain
Rank: 1
等 级:新手上路
帖 子:182
专家分:0
注 册:2005-9-4
得分:0 
你要弄清楚==和=的区别。前者是判断是否相等,后者是赋值

程序和身体一样,健壮,再健壮! 我爱C++
2005-09-24 15:46
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
得分:0 

九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2005-09-24 16:49
woshiyfk
Rank: 1
等 级:新手上路
帖 子:74
专家分:0
注 册:2005-3-2
得分:0 
大家不要总是按书上写的东西编好不好.
其实不用这样写的,两数相乘再除以他们的最大公约数,就是他们的最小公倍数.所以
main()
{int a,b,x,y,i;
scanf("%d%d",&amp;a,%b);
for(i=1;i&lt;=a&amp;&amp;i&lt;=b;i++)
   if(a%i==0&amp;&amp;b%i==0)
      x=i;
y=a*b/x;
printf("最大公约数是%d,最小公倍数是%d\n",x,y);
getch();
}


[此贴子已经被作者于2005-9-25 10:21:02编辑过]



2005-09-25 10:18
leexianjun
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2005-6-12
得分:0 
哥们真热情,谢谢了!!

生活就像一杯茶,越品越香;烦恼就像茶叶,滋润生活!
2005-09-25 10:56
leexianjun
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2005-6-12
得分:0 
谢谢4楼的 程序改了一个地方,将j==a改成j=a就行了 谢谢了阿
/*输入两个整数,打印出最大公约数和最小公倍数*/
#include&lt;stdio.h&gt;
main()
{
    int a,b,i,j,t ;
    lable :
    printf("please input tow integers:\n");
    scanf("%d%d",&amp;a,&amp;b);
    if(!(a&gt;0&amp;&amp;b&gt;0))
    {
        printf("error!please input again\n");
        goto lable ;
    }
    if(a&lt;b)
    {
       t=a;
       a=b;
       b=t;
     }
     /*求最大公约数*/      
    for(i==b;i&gt;=1;i--)
    {
        if((a%i==0)&amp;&amp;(b%i==0))break ;
    }
    printf("最大公约数:%d\n",i);
    /*求最小公倍数*/
    for(j=a;;j++)
    {
        if((j%a==0)&amp;&amp;(j%b==0))break ;
    }
    printf("最小公倍数:%d\n",j);
}

生活就像一杯茶,越品越香;烦恼就像茶叶,滋润生活!
2005-09-25 11:12



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-28573-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.693111 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved