求最小公倍数的算法错在哪里?
#include "stdio.h"void main()
{
int max(int x,int y);
int a,b,c;
scanf("%d,%d\n",&a,&b);
c=max(a,b);
printf("%d\n",c);
getch();
}
int max(int x,int y) /*求最小公倍数*/
{
int i;
for(i=2;i>=2;i++)
{
if(x*i==y*i)
{
return(i);
}
}
}
你想会相等吗?
...........
你找个求最大公约数的进经典算法
然后俩个数相乘除以最大公约数就是最小公倍数
你的程序设计思想好像不对哦.
,以下是我之前做的求最大公约数和最小公倍数的程序,在VC6.0下通过...#include<stdio.h>
void main()
{
int m(int x,int y);
int n(int x,int y);
int a,b,c,d;
printf("请输入两个数:\n");
scanf("%d,%d",&a,&b);
c=m(a,b);
d=n(a,b);
printf("%d和%d的最大公约数是:%d\n",a,b,c);
printf("%d和%d的最小公倍数是:%d\n",a,b,d);
}
int k;
int m(int x,int y)
{
int i,temp;
if(x>y)
{
temp=x;
x=y;
y=temp;
}
for(i=x;i>=1;i--)
if(x%i==0&&y%i==0)
{k=i;
break;
}
return k;
}
int n(int x,int y)
{
extern k;
int a,b,z;
a=x/k;
b=y/k;
z=a*b*k;
return z;
} for(i=2;i>=2;i++)
这个是死循环,不会结束的
页:
[1]
