C程序中的一个小问题 劳驾大家帮忙下

来源:百度知道 编辑:UC知道 时间:2024/06/03 07:35:45
以下程序的功能是求3个数的最小公倍数,补足所缺语句
#include <stdio.h>
max(int x,int y,int z)
{if (x>y&&x>z)return(x);
else if ( )return(y);
else return(z);
}
main()
{ int x1,x2,x3,i=1,j,x0;
printf(“Input 3 integers:”);
scanf(“%d%d%d”,&x1,&x2,&x3);
x0=max(x1,x2,x3);
while(1)
{ j=x0 * i;
if ( )break;
i=i+1;
}
printf(“The is %d %d zuixiaogongbeishu is %d\n”,x1,x2,x3,j);
}

一个个空格填 y>x&&y>z 是知道的
但第二个空格我填的是 i<=3
可答案是j%x1==0&& j%x2==0&& j%x3==0
个人觉得i<=3也可以 所以请教大家可不可以用i<=3 如果不可以那为什么呢? 劳教大家了

首先是不可以的。

因为在 j=x0 * i; 中。变量j是存储3个数中最大数乘变量i的。变量i是不断递增的。当某时刻变量j能满足 j%x1==0&& j%x2==0&& j%x3==0。那么此时的变量j就是这3个数的最小公倍数。

水平不够,我看得不太懂你答案里的答案是在那里的,是在else if ( )return(y);这里呢还是if ( )break;这里呢,我认为应该不会在第一个空里,因为没有定义I的出现,那就应该是第2个了,但是如果按你的答案的话,那就循环3次就结束了。肯定是错了

看不懂 你为什么要填 i<=3 肯定不对

答案是正确的 除着三个数的余数都为0 就是公倍数