lizechen 发表于 2017-8-31 00:10:07

求两个数的最大公约数 ,这个程序哪里有问题?运行的时候,输入两个数enter,程序...

int main()
{
   int GYS(int m, int n);//求公约数函数
   int m, n;
   int i;
   printf("Please input two numbers :");
   scanf("%d,%d", m, n);
   if(m < n)
   {i = m; m = n ; n = i;}
   GYS(m,n);//求最大公约数
   return 0;
}

int GYS(int m, int n)
{
   int i;int k;
   if(m % n == 0)
   printf("%d is themax GYS", n);
   else
   {
      for(i = 1; i < n ; i++)
      {
         if((m % i == 0) && (n % i == 0))
         k = i;
      }
      printf("The max of GYSs is %d\n",k);
   }   
   return 0;
}

ba21 发表于 2017-8-31 00:52:09

lizechen 发表于 2017-8-31 07:24:21

ba21 发表于 2017-8-31 00:52


是win7环境吗?

ba21 发表于 2017-8-31 10:18:19

lizechen 发表于 2017-8-31 07:24
是win7环境吗?

是的

lizechen 发表于 2017-8-31 11:00:57

ba21 发表于 2017-8-31 10:18
是的

我用的DEV C++和Cfree都编译不了,这是为什么呢?

ba21 发表于 2017-8-31 12:52:49

lizechen 发表于 2017-8-31 11:00
我用的DEV C++和Cfree都编译不了,这是为什么呢?

你用我的代码还是你的代码???你觉得我的代码和你的是一样的吗?

lizechen 发表于 2017-8-31 14:10:22

ba21 发表于 2017-8-31 12:52
你用我的代码还是你的代码???你觉得我的代码和你的是一样的吗?

看到了,输入那里我的代码缺了两个&号

lizechen 发表于 2017-8-31 14:11:20

ba21 发表于 2017-8-31 12:52
你用我的代码还是你的代码???你觉得我的代码和你的是一样的吗?

{:5_92:}

Crazy_Snail 发表于 2017-9-1 09:33:25

本帖最后由 Crazy_Snail 于 2017-9-1 09:35 编辑

求最大公约数有个简单得不得了的算法: 欧几里德算法:
#include <iostream>

int Gcd(int a, int b)
{
    return b ? Gcd(b, a%b) : a;
}

int main()
{
    int a = 0, b = 0;
    while (std::cin >> a >> b) {
      std::cout << a << " 与 " << b << " 的最小公约数是" << Gcd(a,b) << std::endl;
    }
    return 0;
}

{:9_222:}
页: [1]
查看完整版本: 求两个数的最大公约数 ,这个程序哪里有问题?运行的时候,输入两个数enter,程序...