AprilFranky 发表于 2022-3-10 19:58:05

c语言代码 不知道那里出问题了

#include <stdio.h>
int main()
{
        int x=2,y,z=1;
        while (x <= 100)
        {
                for (y=1; y<x/2; y++)
                {
                        if (x%y==0)
                        {
                                z=0;
                        }
                }
                if (z)
                {
                        printf("%d是质数\n",x);
                }
                else
                {
                        printf("%d不是质数\n",x);
                }
                x=x+1;
        }
       
        return 0;
}

求大佬相助

gandixiwang 发表于 2022-3-10 20:04:03

我运行了一下,没有问题啊

gandixiwang 发表于 2022-3-10 20:06:13

就是消息繁琐点,你可以把else的代码删掉,那样看起来就会简洁许多

AprilFranky 发表于 2022-3-10 20:07:47

gandixiwang 发表于 2022-3-10 20:04
我运行了一下,没有问题啊

就2和3显示是质数,但是后面稍微大一点的就显示不是质数了比如17,19,23之类的

gandixiwang 发表于 2022-3-10 20:28:00

#include <stdio.h>

int main()
{
      int x=1,y,z=1;
      while (x <= 100)
      {
                for (y=2; y<=x/2; y++)
                {
                        if (x%y==0)
                        {
                              z=0;
                        }
                }
                if (z)
                {
                        printf("%d是质数\n",x);
                }
                x=x+1;
                z=1;
      }

gandixiwang 发表于 2022-3-10 20:28:30

你运行我这个试试看,我这个可以,在对比一下你的就知道了

gandixiwang 发表于 2022-3-10 20:29:18

我那里忘写return 0;了

YSW9527 发表于 2022-3-10 20:34:03


#include <stdio.h>
int main()
{
      int x=2,y,z=1;
      while (x <= 100)
      {
                                z=1;//z每一次都要之于1,如果没有进去if(x%y==0)就会出错
                for (y=2; y<=x/2; y++)//根据质数的特点,我们从2开始,只要除尽了就不是质数,使用break跳出循环
                {//其次 范围要y<=x/2,例如像4这种情况,
                        if (x%y==0)
                        {
                              z=0;
                                                                break;
                        }
                }
                if (z)//z大于0的时候为真
                {
                        printf("%d是质数\n",x);
                }
                else
                {
                        printf("%d不是质数\n",x);
                }
                x=x+1;
      }
      
      return 0;
}

YSW9527 发表于 2022-3-10 20:34:46

gandixiwang 发表于 2022-3-10 20:04
我运行了一下,没有问题啊

没发现结果是错的嘛
{:10_266:}

gandixiwang 发表于 2022-3-10 20:37:35

YSW9527 发表于 2022-3-10 20:34
没发现结果是错的嘛

{:10_291:}

AprilFranky 发表于 2022-3-11 08:09:26

gandixiwang 发表于 2022-3-10 20:28
你运行我这个试试看,我这个可以,在对比一下你的就知道了

谢谢了,问题解决了

gandixiwang 发表于 2022-3-11 13:37:16

{:5_109:}
页: [1]
查看完整版本: c语言代码 不知道那里出问题了