C语言代码解释

#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个回答

i可以不赋值

发布于 2018-12-28 19:13
查看更多

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

就你的程序

若if(x<y) 不成立

直接会执行

while(i!=0){  

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

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

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

if(x<y)

{

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

完全可以不要的


发布于 2018-12-28 19:07
查看更多
外卖券领取

相关问题

支持语音或者文本回复

语音最长一分钟

点击录音开始,最短不低于3秒