中考答案什么时候出来:关于C语言的最大公约数和最小公倍数的问题!高手们进来一下帮帮忙!

来源:百度文库 编辑:神马品牌网 时间:2024/05/09 02:06:32
请大家帮助编一个程序:写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果。两个整数由健盘输出。

谢谢!

#include "stdio.h"
void main()
{int fun(int,int);
void print(int,int);
int x,y;
scanf("%d,%d",&x,&y);
printf("\n");
print(fun(x,y),x*y/fun(x,y));
getch();
}
int fun(int x,int y)
{ int i;
for(i=1;;i++)
if(i*x%y==0) return(i*x);
}
void print(int x,int y)
{printf("%d,%d\n",x,y);}
我已经试过了!

#include <stdio.h>

int func1(int a,int b)
{/*此函数返回最大公约数*/
int i,r;
for(i=1;i<=(a<=b?a:b);i++)
{
if(a%i==0 && b%i==0)r=i;
}
return r;
}

int func2(int a,int b)
{/*此函数返回最小公倍数*/
return a*b/func1(a,b);
}

void main()
{
int a,b;
printf("Input the first integer: ");
scanf("%d",&a);
printf("Input the second integer: ");
scanf("%d",&b);
printf("Result: %d and %d\n",func1(a,b),func2(a,b));
}

这样就可以。
#include "stdio.h"
#include "conio.h"
main()
{
int a,b,num1,num2,temp;
printf("please input two numbers:\n");
scanf("%d,%d",&num1,&num2);
if(num1<num2)/*交换两个数,使大数放在num1上*/
{
temp=num1;
num1=num2;
num2=temp;
}
a=num1;b=num2;
while(b!=0)/*利用辗除法,直到b为0为止*/
{
temp=a%b;
a=b;
b=temp;
}
printf("gongyueshu:%d\n",a);
printf("gongbeishu:%d\n",num1*num2/a);
getch();
}

楼上用#include "conio.h" 做什么?
好象里面的函数你一个也没有用到到啊!
还有,这个程序只需要三个变量就可以了

#include<stdio.h>
void main()
{int a,b,t,p,r;
printf("请输入a,b:");
scanf("%d,%d",&a,&b);
if(a<b)
{t=a;
a=b;
b=t;}
p=a*b;
while(b!=0)
{r=a%b;
a=b;
b=r;}
printf("最大公约数为:%d\n",a);
printf("最小公倍数为:%d\n",p/a);
}
我昨天在电脑上试过了,这样可以,而且我现在正在学那门课!