[C] 12月13日思考题(带注释语句版) →→→→→进入此内容的聊天室

来自 , 2019-12-22, 写在 C, 查看 137 次.
URL http://www.code666.cn/view/d9ff90f4
  1. #include<stdio.h>
  2. int main() {
  3.   printf("请任意输入两个整数:");
  4.   int m, n, min, max;
  5.   scanf("%d%d", &m, &n);
  6.   if (m == n)
  7.     printf("%d与%d的最大公约数与最小公倍数均为%d.\n", m, n, n);
  8.   else if (m > n) {
  9.     min = n;
  10.     max = m;
  11.   }
  12.   else if (m < n) {
  13.     min = m;
  14.     max = n;
  15.   }/*以上语句作用是比较m,n的大小,将大的值给max,将小的值给min.*/
  16.   while (min >= 1)/*m和n至少有一个约数1*/{
  17.     if (m % min == 0 && n % min == 0){
  18.       printf("%d与%d的最大公约数为%d.\n", m, n, min);
  19.       break;
  20.     } /*一旦得到约数,立即跳出循环,以保证该数是最大的.*/
  21.     min--;
  22.     }/*循环的作用是从m,n中小的值开始每次减一循环,直到得到公约数.*/
  23. while(max<=999999999)/*找倍数时应该从m,n中较大的值每次加1,上限应很大以保证能找到*/{
  24.       if (max % m == 0 && max % n == 0){
  25.         printf("%d与%d的最小公倍数为%d.", m, n, max);
  26.         break;
  27.       } /*一旦得到公倍数,立即跳出循环,以保证该数是最小的.*/
  28.       max++;
  29. }/*循环的作用是从m,n中较大的值开始每次加一循环,直到得到公倍数.*/
  30. return 0;
  31. }

回复 "12月13日思考题(带注释语句版)"

这儿你可以回复上面这条便签

captcha