鱼C论坛

 找回密码
 立即注册
查看: 1479|回复: 2

课后作业S1E15动动手第二题~

[复制链接]
发表于 2022-3-26 22:30:51 | 显示全部楼层 |阅读模式
1鱼币
#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;
}
C语言作业
请问一下~为什么这里不写else的话,循环好像就直接结束了,是为什么呀,是因为flag = 0了吗

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-3-26 22:37:47 | 显示全部楼层
flag的意思是默认 i 是素数,经过一个判断如果不是素数就把flag置为0,这肯定每次都要重新初始化flag的,不然后面的素数也会因为flag是0而不count++
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-3-27 09:36:04 | 显示全部楼层
本帖最后由 gandixiwang 于 2022-3-27 09:39 编辑

是的,但是如果你这样写
  1. #include <stdio.h>

  2. int main()
  3. {
  4.          int count = 2; // 已知2和3是素数
  5.         int i, j;

  6.          for (i = 5; i < 10000; i++)
  7.          {
  8.                  _Bool flag = 1;
  9.                  for (j = 2; j < i / 2; j++)
  10.                  {
  11.                          if (i % j == 0)
  12.                          {
  13.                                  flag = 0;
  14.                                  break;
  15.                          }
  16.                  }

  17.                  if (flag)
  18.                  {
  19.                          count++;
  20.                  }
  21.          }

  22.          printf("10000以内共有%d个素数!\n", count);

  23.          return 0;
  24. }
复制代码

就可以不用写else了
就是把flag变量写进循环里
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-1 20:06

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表