还是求助,遇到if语句的特殊情况,不知如何理解
本人在网上找到这样一题:“判断101-200之间有多少个素数,并输出所有素数。程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。”自己没做出来。答案是这样给的
#include "math.h"
main()
{
int m,i,k,h=0,leap=1;
printf("\n");
for(m=101;m<=200;m++)
{ k=sqrt(m+1);
for(i=2;i<=k;i++)
if(m%i==0)
{leap=0;break;}
if(leap) {printf("%-4d",m);h++;
if(h%10==0)
printf("\n");
}
leap=1;
}
printf("\nThe total is %d",h);
}
我运行了一下 ,确实是对的,其中大部分能看懂,只是带下划线的if(leap)处百思不得其解,括弧内怎么不是判断式,而且那个leap不能变,一变就出错,遍翻书籍也没找到是怎么回事,请指教啊。