下面程序的功能是求整数m、n的最大公约数,请填空。 main() {int m,n,r; scanf("%d,%d",&m,&amp下面程序的功能是求整数m、n的最大公约数,请填空。main(){ int m,n,r;scanf("%d,%d",&m,&n);if(【 】){r=m;m=n;n=r;)while(【 】){ r=m%n;m=n;n=r; }printf("%d",m);}

题目
下面程序的功能是求整数m、n的最大公约数,请填空。 main() {int m,n,r; scanf("%d,%d",&m,&

下面程序的功能是求整数m、n的最大公约数,请填空。

main()

{ int m,n,r;

scanf("%d,%d",&m,&n);

if(【 】){r=m;m=n;n=r;)

while(【 】)

{ r=m%n;m=n;n=r; }

printf("%d",m);

}


相似考题
参考答案和解析
正确答案:mn或n>m r或r!=0
mn或n>m r或r!=0 解析:本题使用的是“辗转相除”法求两个数的最大公约数,即以两个数中较大的除以较小的,如果余数不为0,则将较小的数和余数做同样处理,直到被除断为止,此时较小的数就是两个数的最大公约数。本题第一空要求填写一个if语句的判断条件,如果满足此条件则交换m和n的值,再看后面while循环的循环体,使用m%n求余,则此if语句的作用应该是保证m是两个数中较大的那个,故第一空填mn或n>m。接下来的while循环实现整个辗转相除的过程,其结束条件应该是余数r为0,所以while的循环条件应该填r或r!=0。
更多“下面程序的功能是求整数m、n的最大公约数,请填空。 main() {int m,n,r; scanf("%d,%d",&m,&amp ”相关问题
  • 第1题:

    请补充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(【 】)

    {

    t=【 】

    a=b;

    b=t;

    }

    printf ("greatest con. non divisor:

    %d\n", a);

    printf ("least common multiple:

    %d\n",【 】);

    }


    正确答案:b!=0 a%b; n*m/a
    b!=0 a%b; n*m/a 解析:第一空:本题考查求最大公约数和最小公倍数的方法。变量a保存两数中较大着,变量b保存较小者,采用循环的方法求解最大公约数,循环结束条件是b等于0。第二空:求解最大公约数的思路是,将a对b求余,如果余数为0, 则b即为两数的最大公约数,如果余数不为0,则将b赋给a,余数赋给b,继续将a对b求余,如此循环,直到余数为0。第三空:最小公倍数等于两数的乘积除以最大公倍数。

  • 第2题:

    下面函数的功能是用辗转相除法求两个正整数m和n的最大公约数。请在下划线处填空。 int fun(int m,int n) { int r; if(m<n) { r=m; m=n ; n=r; } r=m%n; while() { m=n ; n=r; r=m%n; } return n ; }


    r!=0##%_YZPRLFH_%##r

  • 第3题:

    【填空题】下面程序的功能是用“辗转相除法”求两个正整数的最大公约数。请分析程序填空。 #include<stdio.h> main() {int r,m,n; scanf("%d%d",&m,&n); if(m<n) 【1】; r=m%n; while(r){m=n;n=r;r=【2】;} printf("%dn",n); }


    将AA,BB开始的两个双字节数据相加,结果存回AA,AA+1单元。

  • 第4题:

    以下程序求两个整数M,N 的最大公约数:
    SUBROUTINE ZDGUS(M,N)
    K=__________
    DO 10 J=2,K
    IF(MOD(N,J).EQ.0.AND.MOD(M,J).EQ.0)L=J
    10 CONTINUE
    WRITE(*,’(2X,15)’)L
    RETURN
    END
    为了使程序完整,在_____处应填入的是:
    (A)M (B)N
    (C)MIN(M,N) (D)M/N


    答案:C
    解析:

  • 第5题:

    1、下面程序的功能是计算两个整数的()。 #include <stdio.h> int main() { int m,n,w; scanf("%d,%d",&m,&n); while (n) { w=m; m=n; n=w%n; } printf("%d",m); return 0; }

    A.最大公约数

    B.最小公倍数

    C.m和n值交换

    D.m和n的乘积


    错误