为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

正在回答

3 回答

如果只把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;    

}


0 回复 有任何疑惑可以回复我~

m<=50

n<..

遍历完就停下来了

0 回复 有任何疑惑可以回复我~

1既不是质数也是合数。

0 回复 有任何疑惑可以回复我~
#1

慕粉0938398487 提问者

但是程序为什么会停下呢……
2017-05-11 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信