r是一个标志。n%i==0成立,n就不是素数,然后break,令标志r改为1.
“!r”是逻辑非,如果r为假(0),其结果就为真(1),如果r为真(非0),其结果就为假(0)。所以一开始给r赋值0,是为了下面做铺垫。。
if(n%i==0) //判断是否为素数
{
r=1; //如果n%i==0为真,则给r赋值1
break;//终止循环
}
for和while基本可以互换,但要注意用法,下面是for改while,区别自己参悟吧。。
程序代码:#include<stdio.h>
int main(void)
{
int n,i,r=0;
printf("请输入大于3一个正整数:");
scanf("%d",&n);
i=2;
while(i<n)
{if(n%i==0)
{
r=1;
break;
}
i++;
}
if(!r)
printf("%d是素数。\n",n);
else
printf("%d不是素数。\n",n);
}[ 本帖最后由 weipeng1217 于 2012-1-17 16:16 编辑 ]




