C语言代码解释

2018-12-28 18:12发布

#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;

 }

然后大神有什么建议的话提一下哈!

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
2条回答
Anchen36
1楼-- · 2018-12-28 19:13

i可以不赋值

唐城冬
2楼-- · 2018-12-28 19:07

这个i必须赋值的(要赋一个不为0的值)

就你的程序

若if(x<y) 不成立

直接会执行

while(i!=0){  

若i不赋值,这个循环不会执行,结果就不对了

所以i必须赋一个非0的值

另外,因你用的是碾转相除法,所以

if(x<y)

{

i=x; x=y; y=i;}

完全可以不要的


一周热门 更多>