C语言中如何调用函数求最大公约数和最小公倍数
#include<stdio.h>
int a;
int _Y(int x,int y);
int main()
{
int a,b,c,d;
printf(“请输入数字:”);
scanf("%d,%d",&c,&d);//此处注意在输出的时候数字之间要打都好,不然输出结果错误
b=_Y(c,d);
a=c*d/b;
printf(“最大公约数为:%d\n”,b);
printf(“最小公倍数为:%d\n”,a);
return 0;
}
int _Y(int x,int y)
{
int e;
if(x<y)
{
e=x;
x=y;
y=e;
}
while((e=x%y)!=0)
{
x=y;
y=e;
}
return(y);
}
扩展资料:
while循环开始后,先判断条件是否满足,如果满足就执行循环体内的语句,执行完毕后再回来判断条件是否满足,如此无限重复;直到条件不满足时,执行while循环后边的语句。简单来讲就是说while循环是先判断后循环, 判断如果满足条件进入循环 本次循环后再次判断 。
举个例子:
do-while循环与while循环的不同在于:它先执行循环中的语句,然后再判断表达式是否为真, 如果为真则继续循环;如果为假, 则终止循环。因此, do-while循环至少要执行一次循环语句。 简单来讲就是说while循环是先循环后判断 。
举个例子:
总结:while循环是先判断后循环 ,而do–while循环是先循环后判断。
参考资料:
//求a和b最大公约数:
int yue(int a,int b)
{
int k=1;
int t=a>b?b:a;//a大取b,否则取a
for(int i=1;i<=t;i++)
{
if((a%i==0)&&(b%i==0)) k=i;
else continue;
}
return k;//返回最大公约数
}
//求a和b的最小公倍数,参数c传递的是a和b的最大公约数
int bei(int a,int b,int c)
{
return (a*b)/c;
}
void main()
{
int a,b;
printf("请按从大到小的顺序输入2个要求值的数\n");
scanf("%d%d",&a,&b);
printf("两个数的最大公约数是%d\n",yue(a,b));
printf("两个数的最小公倍数是%d\n",bei(a,b,yue(a,b)));
}
C语言经典例子之求其最大公约数和最小公倍数