给定程序MODI1.C中函数fun的功能是:求三个数的最小公倍数。 例如,给主函数中的变量x1、x2、x3分别输入15 11 2,则输出结果应当是:330。 请改正程序中的错误,使它能得出正确结果。 注意:不要改动main函数,不得增行或删行,也不得更

admin2020-11-27  27

问题 给定程序MODI1.C中函数fun的功能是:求三个数的最小公倍数。
例如,给主函数中的变量x1、x2、x3分别输入15  11  2,则输出结果应当是:330。
请改正程序中的错误,使它能得出正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
#include <stdio.h>
/**********found**********/
fun(int x,y,z)
{  int j,t,n,m;
  j=1;
  t=j%x;
  m=j%y;
  n=j%Z;
  while(t!=0||m!=0||n!=0)
  {  j=j+1;
    t=j%x;
    m=j%y;
    n=j%z;
  }
/**********found**********/
  return i;
}
main()
{  int x1,x2,x3,j;
  printf("Input x1 x2 x3:");S canf("%d%d%d",&x1,&x2,&x3);
  printf("x1=%d,x2=%d,x3=%d\n",x1,x2,x3);
  j=fun(x1,x2,x3);
  printf("The minimal common multiple is:%d\n",j);
}

选项

答案(1)int fun(int x, int y, int z) (2)retu rn j;

解析 (1)在主函数中“i=fun(x1,x2,x3);”,可知fun函数有3个整型形参,且有整型返回值,在第一个标识下,应该有三个int声明的变量,故第一标识下应改成“int fun(int x,int y,int z)”。
    (2)在循环“while(t!=0‖m!=0‖n!=0)”中,当t、m和n均为0时,即j%x、j%y和j%z均等于0,循环条件为假,退出循环,此时j就是x、y和z的最小公倍数,故函数的返回值为j。
转载请注明原文地址:https://kaotiyun.com/show/h73p777K
0

最新回复(0)