if (sieve[j]!=0)这句话是什么意思呢,代码是用筛法选出2到200的素数

#include <stdio.h>
#define num 200
int main()
{

int sieve[num+1];
sieve[0]=sieve[1]=0;
for(int i=2;i<=num;i++)
sieve [i]=i;
int count=0;
for (int j=2;j<=num;j++)
if (sieve[j]!=0)
{

printf("%5d",j);
count++;
if (count%10==0)
printf("\n");
for (int k=j;k<=num;)
{
sieve[k]=0;
k=k+j;
}
}
printf ("\n");
return 0;
}

if (sieve[j]!=0) 把!=0,跑一下,可得到下图,而下图跟加上!=时的结果是一样的,因为if加上括号中的sieve[j]就相当于非0为真的形式:

img


其实这句话的意思就是如果筛子元素非0,也就是为真的时候,进行输出。

希望对题主有所帮助,可以的话,帮忙点个采纳!