求大佬!
#include <stdio.h>int main()
{
int count = 2; // 已知2和3是素数
int i, j;
_Bool flag = 1;
for (i = 5; i < 10000; i++)
{
for (j = 2; j < i / 2; j++)
{
if (i % j == 0)
{
flag = 0;
break;
}
}
if (flag)
{
count++;
}
else
{
flag = 1;
}
}
printf("10000以内共有%d个素数!\n", count);
return 0;
}
_Bool flag = 1; flag = 0;是什么意思啊? 声明了一个布尔变量flag,1就是真,0就是假 本帖最后由 jackz007 于 2021-12-17 10:35 编辑
flag 是旗标,在外层循环中,先为每一个 i 打个是素数的旗标(flag = 1),然后,通过内层循环枚举 i 所有可能因子 j 的方法竭力进行否定,如果得逞了,那么就说明 i 不是一个素数,就把旗标换掉(flag = 0),否则,如果对于所有的 j 竟然都无法得逞(flag = 1),那么,说明 i 就真的是一个素数了。这样,当内层循环结束的时候,根据 flag 的数值(flag = 1 素数,flag = 0 不是素数),就可以判定 i 是否是一个素数了。 jackz007 发表于 2021-12-17 10:12
flag 是旗标,在外层循环中,先为每一个 i 打个是素数的旗标(flag = 1),然后,通过内层循环枚举...
布尔变量是什么,有什么用? 阿萨德按时 发表于 2021-12-17 10:11
声明了一个布尔变量flag,1就是真,0就是假
布尔变量是什么,有什么用? 本帖最后由 jackz007 于 2021-12-17 11:00 编辑
何艺铧 发表于 2021-12-17 10:37
布尔变量是什么,有什么用?
一种变量,只有 2 个值,真和假,我们常见的条件表达式的值就是布尔型变量。
例如,a = 5 ,b = 8, a < b 的值为真,而 a >= b 的值为假。条件 if(a < b) 就成立,if(a >= b) 就不成立。成立和不成立的原因都是因为被括号里的布尔值管着。
页:
[1]