问答详情
源自:4-14 结束语句之break语句

为什么初始值(表达式1)必须是2?

为什么把m和n的初始值改为1后,结果就变成只有1不往下循环?

提问者:慕粉0938398487 2017-05-10 10:43

个回答

  • 后会无期_
    2017-05-17 11:07:47

    如果只把m改为1 的话是没有影响的,但是如果你把n改为1了,任何数都可以被1整除,n的循环在1那里就符合条件直接break跳出循环了,n值不会增加,然后打印出来符合m=n的就只有1=1了。仔细看一下break条件吧

    #include <stdio.h>

    int main()

    {

        int m, n;

        for(m=1; m<=50; m++)

        {

            for(n=1; n<=m; n++)

            {

                if(   m%n==0    )       //什么条件下跳出当前循环

                    break;                //这里应该退出当前循环了

            }

            if(m == n)   //n循环结束后,如果m=n的话就输出m

                printf("%d  ", m);

        }

        return 0;    

    }


  • 慕粉23070526
    2017-05-12 17:53:19

    m<=50

    n<..

    遍历完就停下来了

  • 慕粉23070526
    2017-05-10 14:20:02

    1既不是质数也是合数。