鱼C论坛

 找回密码
 立即注册
查看: 692|回复: 11

[已解决]c语言代码 不知道那里出问题了

[复制链接]
发表于 2022-3-10 19:58:05 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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

求大佬相助
最佳答案
2022-3-10 20:28:30
你运行我这个试试看,我这个可以,在对比一下你的就知道了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-3-10 20:04:03 | 显示全部楼层
我运行了一下,没有问题啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-3-10 20:06:13 | 显示全部楼层
就是消息繁琐点,你可以把else的代码删掉,那样看起来就会简洁许多
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-3-10 20:07:47 | 显示全部楼层
gandixiwang 发表于 2022-3-10 20:04
我运行了一下,没有问题啊

就2和3显示是质数,但是后面稍微大一点的就显示不是质数了比如17,19,23之类的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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;
        }
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-3-10 20:28:30 | 显示全部楼层    本楼为最佳答案   
你运行我这个试试看,我这个可以,在对比一下你的就知道了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-3-10 20:29:18 | 显示全部楼层
我那里忘写return 0;了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-3-10 20:34:46 | 显示全部楼层
gandixiwang 发表于 2022-3-10 20:04
我运行了一下,没有问题啊

没发现结果是错的嘛
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-3-10 20:37:35 | 显示全部楼层
YSW9527 发表于 2022-3-10 20:34
没发现结果是错的嘛

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-3-11 08:09:26 | 显示全部楼层
gandixiwang 发表于 2022-3-10 20:28
你运行我这个试试看,我这个可以,在对比一下你的就知道了

谢谢了,问题解决了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-3-11 13:37:16 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-10-5 13:23

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表