请帮我找出错误,运行之后没有输出

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

慕无忌1305470

2016-07-21 16:35

输出1-50所有的素数

#include <stdio.h>
int main()
{
    int m,n;
    for(m=2;m<=50;m++)
    {
        n=2;
        while(n>=2 && n<50)
        {
            if (m%n == 0)
                break;
        }
        n++;
    }
    if(m == n)
    {
        printf("%d ",m);
    }
    
    
    return 0;
    
}



写回答 关注

3回答

  • 我改名字了
    2016-08-14 20:31:43

    while(n>=2 && n<50)判断错了。

    n++;位置错了。

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

    {

    }大括号位置错了。

     if (m%n == 0)   if后虽然可以有空格,不过本题通过不了。

    解释:

    大括号错了你可以理解为

    if(m == n)
        {
            printf("%d ",m);
        }

    的位置错了。

    n>=2 && 一定通过,因为每次循环n都重新被赋初值。无意义。

    n<50  按你的思路应该是51,就算能通过,无意义的运算过多。

    n++不在while循环内。

    {  }  大括号, if(m == n)判断应该在for循环内。


    我改名字了

    你的n++不在while循环内。正确应该在while内

    2016-08-14 20:49:39

    共 1 条回复 >

  • 我改名字了
    2016-08-14 20:01:55

    #include<stdio.h>

    int main()

    {

        int x,y,m,n;

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

        {

            for(y=2;y<x;y++)

            {

                if(x%y==0)

                {

                    break;          

                }

            }

            if(x==y)

            {

                printf("%d\t",x);

            }

        }

        printf("\n\n\n");

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

        {

            n=2;

            while(n<m)

            {

                if(m%n == 0)

                {

                    break;

                }

                n++;

            }

            if(m==n)

            {

                printf("%d\t",m);

            }

        }

        

        return 0;

        

    }


  • Niuuuuuuuu
    2016-07-21 17:01:02

    没错啊  应该是网站的编译器的问题

C语言入门

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

926028 学习 · 20793 问题

查看课程

相似问题