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

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

输出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 回答

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循环内。


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

我改名字了

你的n++不在while循环内。正确应该在while内
2016-08-14 回复 有任何疑惑可以回复我~

#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;

    

}


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

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

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

举报

0/150
提交
取消
C语言入门
  • 参与学习       926210    人
  • 解答问题       20797    个

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

进入课程

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

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