C编程语言中的素数在1到100之间

use*_*637 -4 c loops for-loop

我想打印1到100之间的素数,我写下我的代码如下,但是当我运行它时,它开始打印3,7,11,17 .... 91为什么不打码2?请帮帮我的朋友

#include <stdio.h>
int main(void)
{
    for(int i=2;i<100;i++)
    {
        for(int j=2;j<i;j++)
        {
            if(i%j==0)
                break;
            else if(i==j+1)
                printf("%d\n",i);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Kla*_*äck 6

条件i==j+1不适用于i==2.这可以通过对内循环的一些更改来修复:

#include <stdio.h>
int main(void)
{
 for (int i=2; i<100; i++)
 {
  for (int j=2; j<=i; j++)   // Changed upper bound
  {
    if (i == j)  // Changed condition and reversed order of if:s
      printf("%d\n",i);
    else if (i%j == 0)
      break;
  }
 }
}
Run Code Online (Sandbox Code Playgroud)

  • 您希望我记录您的代码吗?(代码的结构是一样的,我只修复了一个小bug.)这不是StackOverflow的意思. (4认同)
  • @ user7369637对非母语英语用户的建议:不要叫人"亲爱的". (3认同)