pilipilipiu~ 2021-10-26 20:51 采纳率: 83.3%
浏览 30
已结题

c语言求质数问题不知道哪里错了

#include<stdio.h>
int main()
{
int x,i;
printf("请输入一个正整数x=");
scanf("%d",&x);
if(x=1)
{
printf("不是质数");
}
else
{
for(i=2;i<x;i++)
{
if(x%i==0)
{
printf("不是质数");
}
else
{
printf("是质数");
}
}
}
system("pause");
return 0;
求大佬们看看

  • 写回答

2条回答 默认 最新

  • 左手芦 2021-10-26 21:40
    关注

    1.修改后的代码如下
    #include<stdio.h>
    #include<stdlib.h>
    int main()
    {
    int x,i;
    printf("请输入一个正整数\n");
    scanf("%d",&x);
    if(x==1)
    {
    printf("不是质数!");
    }
    else
    {
    for(i=2;i<x;i++)
    {
    if(x%i==0)
    {
    printf("是质数!\n");
    break;
    }
    else if((x%i!=0)&&(i==x-1))
    {
    printf("不是质数!");
    }
    else
    {
    continue;
    }
    }
    }
    system("pause");
    return 0;
    }

    2.题主写的问题
    你在判断素数时,只是简单调用素数中循环遍历小于素数的数相除求余判断,但是问题是从i=2开始,每一次判断,都会输出结果,比如一个数是14,在i=2是素数,在i=3是判断不是素数,因此有些数字会显示是素数和不是素数混合,我们需要在只要判断是素数的情况下,就返回跳出循环用break,其他情况继续进行用continue,知道i遍历到最后一个值且取余不为0则可以说不是素数。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 11月4日
  • 已采纳回答 10月27日
  • 创建了问题 10月26日

悬赏问题

  • ¥15 r语言神经网络自变量重要性分析
  • ¥15 基于双目测规则物体尺寸
  • ¥15 wegame打不开英雄联盟
  • ¥15 公司的电脑,win10系统自带远程协助,访问家里个人电脑,提示出现内部错误,各种常规的设置都已经尝试,感觉公司对此功能进行了限制(我们是集团公司)
  • ¥15 救!ENVI5.6深度学习初始化模型报错怎么办?
  • ¥30 eclipse开启服务后,网页无法打开
  • ¥30 雷达辐射源信号参考模型
  • ¥15 html+css+js如何实现这样子的效果?
  • ¥15 STM32单片机自主设计
  • ¥15 如何在node.js中或者java中给wav格式的音频编码成sil格式呢