求两个数的最大公约数 ,这个程序哪里有问题?运行的时候,输入两个数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
是win7环境吗? lizechen 发表于 2017-8-31 07:24
是win7环境吗?
是的 ba21 发表于 2017-8-31 10:18
是的
我用的DEV C++和Cfree都编译不了,这是为什么呢? lizechen 发表于 2017-8-31 11:00
我用的DEV C++和Cfree都编译不了,这是为什么呢?
你用我的代码还是你的代码???你觉得我的代码和你的是一样的吗? ba21 发表于 2017-8-31 12:52
你用我的代码还是你的代码???你觉得我的代码和你的是一样的吗?
看到了,输入那里我的代码缺了两个&号 ba21 发表于 2017-8-31 12:52
你用我的代码还是你的代码???你觉得我的代码和你的是一样的吗?
{:5_92:} 本帖最后由 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]