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

我这个问题绝对有点意思,哪位大神帮解答!谢谢,如果非常简单勿喷

#include <stdio.h>
int main()
{
    int i;
    int n;
    for(i=2;i<=50;i++)
    {
        for(n=2;n<=i;n++)
            {
            if(i%n==0)
            
            break;    
            
            }
            if(i==n)
            printf("%d\n",i);
            
    }
    
    
            
                printf("%d\n",i);    //外循环跳出后的i值是51
                printf("%d\n",n);    //内循环跳出来后的n值为什么是2?这是我用dev-c++亲自是的
    return 0;
}

正在回答

1 回答

因为break如果用于for循环,是用来终止for循环。这里break虽然在if内部,但是if在for循环内部,当i=n=2时, if(i%n==0)满足条件,break执行就会跳出for循环,n不会++了。

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

Guncuqu 提问者

哦,我抄!明白了,是不是因为第50次外循环时,内循环从2开始,然后直接跳出来了,所以最后n就是2??? 哈哈,原来是这么玩的。。。
2017-06-06 回复 有任何疑惑可以回复我~
#2

Guncuqu 提问者

非常感谢!
2017-06-08 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

我这个问题绝对有点意思,哪位大神帮解答!谢谢,如果非常简单勿喷

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