4-14,求大神提供详细的解题思路,特别是循环的顺序,感激不尽!!!!

来源:4-14 结束语句之break语句

慕粉1470407156

2017-02-08 22:51

#include <stdio.h>

int main()

{

    int m, n;

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

    {

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

        {

            if(m%n == 0) //m%n

            break;                 

}

        if(m == n)  

            printf("%d  ", m);

}

return 0;    

}


写回答 关注

3回答

  • 这块显卡不太热_
    2017-02-09 01:23:40
    已采纳
    这串代码运用了循环嵌套
    外层的m循环一次,内层的n开始循环,注意子循环中的if语句,当n循环到m除以n余数为0时停止,开始执行下一条
    if语句,如果m等于n,则m为素数,输出m;若m不等于n,则m不为素数,则返回父循环,继续循环。
    举个例子:
    如果m循环到3,n从2开始循环。n=2时,m除以n余数不为0,继续循环,当n循环到3是,m除以n余数为0;则停止循环
    ,开始循环下一条if语句,m等于n等于3,(m==n)结果为真,则输出3,3为素数。
    如果m循环到4,n从2开始循环。n=2时,m除以n余数为0,则停止循环;开始循环下一条if语句,m等于4,n等于2,
    m不等于n,(m==n)结果为假,则返回父循环继续循环m,4不为素数。

    李嘚瑟 回复这块显卡不太...

    那2呢

    2017-05-14 20:07:51

    共 6 条回复 >

  • 慕九州1815790
    2017-06-21 20:15:17

    那是因为n循环到m-1时,会继续进行n++,当n=m时,执行判断n<m,不成立,终止循环,这时就有n=m了。

  • 慕粉1027143435
    2017-03-15 16:27:15

    请问子循环条件中n<m,当m=3,n=3不符合条件呀怎么继续判断?

C语言入门

C语言入门视频教程,带你进入编程世界的必修课-C语言

926028 学习 · 20793 问题

查看课程

相似问题