标题:最大公约数!
只看楼主
独角龙
Rank: 1
等 级:新手上路
帖 子:221
专家分:0
注 册:2006-5-5
 问题点数:0 回复次数:6 
最大公约数!

帮俺挑挑错误!!
#include <stdio.h>

int agr(int m, int n);
int main(void)
{
int m,n,k,temp;

printf("enter two numbers: \n");
scanf("%d %d",&m,&n);

if (m == n) k = m;
else if (m < n)
{
temp = m;
m = n;
n = temp;
k = agr(m,n);
}
else k = agr(m,n);

printf("k = %d\n",k);
}

int agr(int m, int n)
{
int r,k;

r = m%n;
if (r == 0) k = n;
else
{
m = n;
n = r;
}
agr(m,n);

return k;
}

搜索更多相关主题的帖子: int agr 最大公约数 temp 
2006-05-16 21:02
论坛
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1372
专家分:0
注 册:2006-3-27
得分:0 

#include <stdio.h>

int agr(int m, int n);

int main(void)
{
int m,n,k,temp;

printf("enter two numbers: \n");
scanf("%d %d",&m, &n);

if (m == n) k = m;
else if (m < n)
{
temp = m;
m = n;
n = temp;
k = agr(m,n);
}

k = agr(m,n);

printf("k = %d\n",k);
}

int agr(int m, int n)
{
int k;

while (n != 0)
{
k = m % n;
m = n;
n = k;
}

return m;
}


日出东方,唯我不败! 做任何东西都是耐得住寂寞,任何一个行业要有十年以上的积累才能成为专家
2006-05-16 21:17
论坛
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1372
专家分:0
注 册:2006-3-27
得分:0 

#include <stdio.h>

int agr(int m, int n);

int main(void)
{
int m,n,k,temp;

printf("enter two numbers: \n");
scanf("%d %d",&m, &n);

if (m == n) k = m;
else if (m < n)
{
temp = m;
m = n;
n = temp;
k = agr(m,n);
}

k = agr(m,n);

printf("k = %d\n",k);
}

int agr(int m, int n)
{
int k;

if (n != 0) /* m = 24, n = 16 */
{
k = m % n;
m = n;
n = k;
agr(m, n);
}
else
{
return m;
}

}


日出东方,唯我不败! 做任何东西都是耐得住寂寞,任何一个行业要有十年以上的积累才能成为专家
2006-05-16 21:19
knight110
Rank: 1
等 级:新手上路
帖 子:44
专家分:0
注 册:2006-4-13
得分:0 

楼主这个好像有点乱吧,

#include <stdio.h>
main()
{
int a,b,i,m,c,t;
scanf("%d,%d",&a,&b);
c=(a<b)?a:b;
for(i=1;i<=c;i++)
{if(a%i==0&&b%i==0)
{
m=a*b/i;
t=i;
}

}
printf("%d,%d",t,m);
}

发一个我自已的,如有不对的地方请各位指教.


2006-05-16 21:20
独角龙
Rank: 1
等 级:新手上路
帖 子:221
专家分:0
注 册:2006-5-5
得分:0 

楼上的大哥,俺只是让你求最大公约数,可没让你求最小公倍数!


我可不发加班费.

还有你的程序好象还没我的简单哎.呵呵


奋斗改变一切!!
2006-05-16 21:28
knight110
Rank: 1
等 级:新手上路
帖 子:44
专家分:0
注 册:2006-4-13
得分:0 
不要紧,免费送给你的.我这个好像应该挺好理解的吧,!你那个我看的是有点晕啊,!!!!!!!!!!

2006-05-17 10:19
xsimon
Rank: 1
等 级:新手上路
帖 子:121
专家分:0
注 册:2006-5-5
得分:0 

欧几里得算法...

#include<stdio.h>

int main (void)
{
int m, n, r;

printf ("input m, n \n");
scanf ("%d %d", &m, &n);

while (1)
{
r = m % n;
if (r == 0) break;
m = n;
n = r;
}
printf ("最大公约数为: %d", n);

getch ();
return 0;
}

[此贴子已经被作者于2006-5-17 15:34:45编辑过]

2006-05-17 13:59



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




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

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