|  | 
 
| 
# include <stdio.h>
x
马上注册,结交更多好友,享用更多功能^_^您需要 登录 才可以下载或查看,没有账号?立即注册  int max(int x, int y)                 //定义形参x, y
 {
 if (x > y)
 {return x;}                       //返回值给主程序中实参 t 为X
 else {return y;}                  //返回值给主程序中实参 t 为y
 }
 int min(int x, int y)             //定义形参x, y
 {
 if (x > y)
 {return y;}                       //返回值给主程序中实参 p 为y
 else {return x;}                  //返回值给主程序中实参 p 为x
 }
 // return x + y - max(x, y);
 
 void main()
 {
 int q, p;                         // q 中放的是MAX, p 中放的是MIN
 int i, t;                         // i 再次在此指倍数,t在此指的是?
 printf("请输入第一个数: ");
 scanf("%d", &q);
 printf("请输入第二个数: ");
 scanf("%d", &p);
 t = max(q, p);                                                  //就这个地方的 t 起什么作用的?为什么没了就不行?
 p = min(q, p);
 q = t;
 i = 1;
 while (i <= p)                    //从此处开始判断两个数的
 {
 if ((q * i) % p == 0)
 {
 printf("%d,%d的最小公倍数是 %d\n", p, q, q * i);
 i = p;
 }
 i++;
 }
 }
 
 各位大佬,求救。。。。。
 
 
 
 
 
我仔细看了一下,你这代码根本不是辗转相除法。。。不好意思,不过你可以试试自己写一个来解释一下这段代码的实现,过程如下,取出两个数中的较大者,然后不断取它的倍数,直到它恰好能被另一个小的数整除
 举个例子,q = 6,p = 9,通过t将q设置为9,p设置为6,然后循环判断9的倍数是否被6整除,当i=2时,满足条件,输出
 | 
 |