Forty_8 2023-02-27 16:57 采纳率: 85%
浏览 44
已结题

关于#c语言#的问题:每行8个输出100-999内质数,不理解哪里出错

题目问题:以每行8个的形式输出100-999内的质数。
出现的错误:会出现591这种非质数。不理解是哪里出错
代码:

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int i,j,count;
    count=0;
    for(i=100;i<999;i++)
    {
        for(j=2;j<=i;j++)
        {
            if(i%j==0)
            {
                break;
            }
            else
            {
                count++;
                printf(" %d ",i);
                if(count%8==0)
                  {
                       printf("\n");
                  }
                  break;
            }
        }
    }
    return 0;
}


问题截图:

img

  • 写回答

2条回答 默认 最新

  • Huazie 全栈领域优质创作者 2023-02-27 17:02
    关注

    你要 内循环完了 再 输出对应的数据。参考如下修改:

    #include <stdio.h>
    #include <stdlib.h>
     
    int main()
    {
        int i,j,count;
        count=0;
    
        for(i=100;i<999;i++)
        {
            for(j=2;j<i;j++)
            {
                if(i%j==0)
                {
                    break;
                }
            }
            if (j == i) 
            {
                count++;
                printf("%d ",i);
                if(count%8==0)
                {
                    printf("\n");
                }
            }
        }
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 2月27日
  • 已采纳回答 2月27日
  • 创建了问题 2月27日