改錯(cuò)題
給定程序MODI1.C中函數(shù)fun的功能是:求三個(gè)數(shù)的最小公倍數(shù)。
例如,給主函數(shù)中的變量x1、x2、x3分別輸入15 11 2,
則輸出結(jié)果應(yīng)當(dāng)是:330。
請改正程序中的錯(cuò)誤,使它能得出正確結(jié)果。
注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
給定源程序:
#include
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;
}
return i;
}
main( )
{ int x1,x2,x3,j ;
printf("Input x1 x2 x3: "); scanf("%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);
}
解題思路:
第一處: 函數(shù)中形參的定義不正確,應(yīng)改為:fun(int x,int y, int z)。
第二處: 程序中三個(gè)數(shù)的最小公倍數(shù)是用j處理的,所以應(yīng)返回j的值。