#include<stdio.h>
int max(int x,int y)
{
int i=1;//这里为什么必须赋值?
if(x<y)
{
i=x; x=y; y=i;}
while(i!=0){
i=x%y; x=y; y=i;
}
return(x);
}·
int main()
{
int x,y,n;
printf("请输入两个整数:");
scanf("%d %d",&x,&y);
n=max(x,y);
int h;
h=x*y/n;
printf("最大公约数是%d ",n);
printf("最小公倍数是%d ",h);
return 0;
}
然后大神有什么建议的话提一下哈!
i可以不赋值
这个i必须赋值的(要赋一个不为0的值)
就你的程序
若if(x<y) 不成立
直接会执行
while(i!=0){
若i不赋值,这个循环不会执行,结果就不对了
所以i必须赋一个非0的值
另外,因你用的是碾转相除法,所以
if(x<y)
{
i=x; x=y; y=i;}
完全可以不要的
一周热门 更多>