循环变量应该是r吧,
你这里都没有定义i怎么使用?可以自己定义吗?
int a=m;
int b=n;
while(m!=0)/*利用辗除法,直到m为0为止*/
{
r=n%m;
n=m;
m=temp;
}
s1 = n;
s2 = a*b/s1; //最小公倍数等于 两个数的乘积除以最大公约数。
我是在VC环境中编译运行的,语句和C十分接近,以下的程序是可以运行的。在你上面代码的基础上来编写,只是填充的是中间的代码:
s1=m>n?n:m; //s1认为是其中最小的值
s2=m>n?m:n; //s2认为是其中最大的值
while(s2%s1)
{
r=s1;
s1=s2%s1;
s2=r;
} //这样的话计算出来的s1就是最大公约数
//下面就算最小公倍数
s2=m*n/s1; //这样就计算出来了
viod multiple_and_divisor(int m,int n,int *multiple,int *divisor)
{
int remaider;
int div;
int temp;
if(m!=0 && n!=0)
{
remaider = m;
if(m>=n)
{div = m;remaider = n;}
else
{div = n;remaider = m;}
while(0!=remaider)
{
temp = remaider ;
remaider = div %remaider ;
div = temp ;
}
*divisor = div;//最大公约数
*multiple = m*n/div;//最小公倍数
}
else
{
*divisor = 0;//最大公约数
*multiple = 0;//最小公倍数
}
}
,