一个小问题一百以内的素数

img

输出只有1 2 3

if (控制条件) 语句这样的写法只支持一条语句,如果是多条语句还是要加{}

从4开始测试后执行第一个if语句后is为1,然后没有语句让is重置为0,你不重置,即使是素数,is仍是1,第二个if语句永远也不能执行,建议第一个if语句前加一句is=0,重置一下。


int x,i,is=0;
for(i=1;i<=100;i==){
for(x=2;x*x<=i;x++){
  if(i%x==0){
    is=1;
    break;
  }
}
if(is==0) printf("%d ",i);
is=0;
}
return 0;
}

第二个for开始前要is=0; if分支有两条语句,应该用大括号括起来,修改后如下:

#include<stdio.h>

int main()
{
    printf("100以内的素数:\n");
    int x, i, is = 0;
    for (i = 1; i <= 100; i++) {
        is = 0;
        for (x = 2; x*x <= i; x++)
        {
            if (i%x == 0)
            {
                is = 1;
                break;
            }
        }
        if (is == 0)
        {
            printf("%d ", i);
        }
    }
    return 0;
}