新手求助
一、题目
输入两个数x,y,求最大公约数和最小公倍数,想调用4个函数,分别找出最小数min、最大数max,最大公约数div,最小公倍数mul,
二、出现问题:
只有在两个数x,y为倍数关系(如2和8,3和9)时才正确显示,否则不显示。恳请高手指点一下
/*最大公约数和最小公倍数*/
#include<stdio.h>
//找出最小值
int min(int x, int y)
{
int min;
min = x > y ? y : x;
return min;
}
//找出最大值
int max(int x, int y)
{
int max;
max = x > y ? x : y;
return max;
}
//求最大公约数
int div(int x, int y)
{
int m, i;
m = min(x, y);
for (i = m; i >= 1; i--)
if (x % m == 0 && y % m == 0)
{
printf("%d和%d最大公约数是:%d\n", x, y, m);
break;
}
}
//求最小公倍数
int mul(int x, int y)
{
int m, i;
m = max(x, y);
for (i = m; i <= x * y; i++)
if (m % x == 0 && m % y == 0)
{
printf("%d和%d最小公倍数是:%d\n", x, y, m);
break;
}
}
main()
{
while (1)
{
int x, y;
printf("输入两个数:\n");
scanf("%d%d", &x, &y);
div(x, y);
mul(x, y);
}
}