何艺铧 发表于 2021-12-17 09:53:51

求大佬!

#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;是什么意思啊?

阿萨德按时 发表于 2021-12-17 10:11:47

声明了一个布尔变量flag,1就是真,0就是假

jackz007 发表于 2021-12-17 10:12:30

本帖最后由 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 是否是一个素数了。

何艺铧 发表于 2021-12-17 10:37:40

jackz007 发表于 2021-12-17 10:12
flag 是旗标,在外层循环中,先为每一个 i 打个是素数的旗标(flag = 1),然后,通过内层循环枚举...

布尔变量是什么,有什么用?

何艺铧 发表于 2021-12-17 10:38:23

阿萨德按时 发表于 2021-12-17 10:11
声明了一个布尔变量flag,1就是真,0就是假

布尔变量是什么,有什么用?

jackz007 发表于 2021-12-17 10:42:02

本帖最后由 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]
查看完整版本: 求大佬!