请补充main函数,该函数的功能是:输入两个正整数m和n,求这两个数的最大公约和最小公倍数。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在 main函数的横线上填入所编写的若干表达式或语句。 试题程序: #include <stdio.h> main ( ) { int a, b, n, m, t; clrscr (); printf ("\nInput two numbers: \n"); scanf ("%d, %d", &n, &m); if (n<m) { a=m; b=n; } else { a=n; b=m; } while( 【1】 ) { t= 【2】 a=b; b=t; } printf ("greatest con. non divisor: %d\n", a); printf ("least common multiple: %d\n", 【3】 ); }
参考答案:[1]b!=0 [2]a%b; (3)n*m/a
解析: 填空1:本题考查求最大公约数和最小公倍数的方法。变量a保存两数中较大着,变量b保存较小者,采用循环的方法求解最大公约数,循环结束条件是b等于0。填空2:求解最大公约数的思路是,将a对b求余,如果余数为0, 则b即为两数的最大公约数,如果余数不为0,则将b赋给a,余数赋给b,继续将a对b求余,如此循环,直到余数为0。填空3:最小公倍数等于两数的乘积除以最大公倍数。