lune23333 2023-11-12 23:06 采纳率: 50%
浏览 8

while循环嵌套出现问题,寻找x以内的质数,结果却只有一个,求解

寻找x以内的所有质数,结果出现问题,实在找不出来
代码如下

#include<stdio.h>
#include<math.h>
int main()
{
    float a=1,i=0,check=0,u,y;
    int x;
    printf("寻找多少以内的质数?");//寻找x以内的所有质数 
    scanf("%d",&x);
    
    while(a<=x) 
{ 
    
    while(i!=a)//判断a是否为质数的循环检测程序,即检测a的因数有几个 
    {
        i++;
        u=a/i;
        y=fmod(u,1.0);//浮点型求余 
        if(y==0)
        check=check+1;
     } 
     if(check==2)//如果因数为两个 
     {printf("%f\n",a);a++;}//则打印此质数并使a+1 
     else//否则 
     a++;//使a+1 
     
}
     return 0;
}

比如x输入为10,结果应该为2 3 5 7,但实际结果却是2

img

所用软件为dev c++,根据自己理解写的,求解

  • 写回答

2条回答 默认 最新

  • threenewbee 2023-11-12 23:13
    关注

    浮点数存在精度误差,不要用浮点数

    评论

报告相同问题?

问题事件

  • 创建了问题 11月12日