我想打印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)
条件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)
归档时间: |
|
查看次数: |
142852 次 |
最近记录: |