liwenhao96 发表于 2013-11-12 15:08:00

关于C语言的一道题

求大神!

friendan 发表于 2013-11-12 15:08:01

效果截图(望下次给多点分哈):


代码如下:
#include <stdio.h>

//求a和b的最大公约数
int MaxGY(int a,int b)
{
      int min,rtn=0;
      min=a<b?a:b;
      for(int i=1;i<=min;i++)
      {
                if(a%i==0&&b%i==0)
                        rtn=i;
      }
      return rtn;
}

//求a和b的最小公倍数
int MinGB(int a,int b)
{
      int rtn=0;
      for(int i=1;;i++)
      {
                if(i%a==0&&i%b==0)
                {
                        rtn=i;
                        break;
                }
      }
      return rtn;
}

void main ()
{

      printf("%d和%d的最大公约数为:%2d,最小公倍数为:%d\n",21,42,MaxGY(21,42),MinGB(21,42));
      printf("%d和%d的最大公约数为:%2d,最小公倍数为:%d\n",12,16,MaxGY(12,16),MinGB(12,16));
      printf("%d和%d的最大公约数为:%2d,最小公倍数为:%d\n",24,60,MaxGY(24,60),MinGB(24,60));
}



flame123456 发表于 2013-11-12 17:55:07

#include<stdio.h>
void main()
{
int p,r,m,n,temp;
printf("请输入两个正整数:");
scanf("%d,%d",&n,&m);
if(n<m)
{
   temp=n;
   n=m;
   m=temp;
   }
p=n*m;
while(m!=0)
{
   r=n%m;
   n=m;
   m=r;
}
printf("最小公倍数:%d\n",n);
printf("最大公约数:%d\n",p/n);
}

flame123456 发表于 2013-11-12 17:57:11

flame123456 发表于 2013-11-12 17:55 static/image/common/back.gif
#include
void main()
{


弄反了,最小公倍数和最大公约数要反过来

22222雄 发表于 2013-11-12 20:03:20

从头到尾都错了。:dizzy:

22222雄 发表于 2013-11-12 20:05:03

主函数都没编写阿,而且要调用函数阿

22222雄 发表于 2013-11-12 20:05:44

明天我来编写阿。{:1_1:}

flame123456 发表于 2013-11-12 20:18:56

22222雄 发表于 2013-11-12 20:03 static/image/common/back.gif
从头到尾都错了。

从头到尾都错了?我承认自己美调用函数,但这个程序不能求出最大公约数和最小公倍数?你试过?

flame123456 发表于 2013-11-12 20:25:33

22222雄 发表于 2013-11-12 20:05 static/image/common/back.gif
主函数都没编写阿,而且要调用函数阿

没主函数?那你告诉我main函数不是主函数是什么函数?

flame123456 发表于 2013-11-12 20:42:09

#include<stdio.h>
int f(int a,int b)
{
        int r,temp;
        if(a<b)
          {
           temp=a;
           a=b;
           b=temp;
           }
        while(b!=0)
          {
           r=a%b;
           a=b;
           b=r;
          }
        return(a);
}

void main()
{
        int m,n,p,d;
        printf("请输入两个正整数:");
        scanf("%d,%d",&n,&m);
        p=n*m;
        d=f(n,m);
        printf("最小公倍数:%d\n",p/d);
        printf("最大公约数:%d\n",d);
}
这是有调用函数的,22222雄 指正。。。。。。。。。。

乱闯 发表于 2013-11-12 22:08:45

:sweat:这又是课后作业吧

flame123456 发表于 2013-11-12 22:15:13

乱闯 发表于 2013-11-12 22:08 static/image/common/back.gif
这又是课后作业吧

肯定是的:sweat:

liwenhao96 发表于 2013-11-13 10:54:41

乱闯 发表于 2013-11-12 22:08 static/image/common/back.gif
这又是课后作业吧

说得好!!!!

liwenhao96 发表于 2013-11-13 10:57:06

flame123456 发表于 2013-11-12 22:15 static/image/common/back.gif
肯定是的

就是。。。。。。。。。。。。。。。。。。。

pengliang 发表于 2013-11-13 11:57:56

求答案求的真有水平1{:1_1:}

liwenhao96 发表于 2013-11-13 16:23:35

pengliang 发表于 2013-11-13 11:57 static/image/common/back.gif
求答案求的真有水平1

何以见得?

22222雄 发表于 2013-11-14 19:33:30

高啊:lol:friendan.厉害啊。这才对啊

22222雄 发表于 2013-11-14 19:34:32

但,调用函数有点长阿,可不可以短一点阿

夏七夕 发表于 2013-11-15 22:45:52

汗,,,不过同为鱼油,还是顶一个

莫名C 发表于 2013-11-16 10:24:40

这个 不难吧
页: [1] 2
查看完整版本: 关于C语言的一道题