输出只有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;
}