全部评论 8

  • else 绑定错误:本意是循环全部结束后再输出 0#,但现在每次循环不满足 if 就输出 0#;
    边界未处理:
    N=2:循环条件 i<2 不成立,for 一次都不执行,直接无任何输出;
    N=1:循环不执行,无输出;
    输出标记混乱:题目想质数输出 0、合数输出 1,但逻辑被语法错误完全打乱。
    内容由AI生成,请仔细甄别。

    5天前 来自 天津

    2
    • 我也是怎么想的,所以懵了。

      5天前 来自 浙江

      1
  • 更新了第 10,1110,11 题中代码的缩进,应该会清楚一些,代码本身正确性不受影响。

    不写花括号 {} 时,循环结构和分支结构都只包含接下来的一句代码。如果想包含多句代码,需要使用 {} 表示包含范围。平时为了明确包含范围,一般我们养成都写 {} 的习惯。

    for()
        if()
            语句1
    语句2
    
    for(){
        if(){
            语句1
        }
    }
    语句2
    

    这两个代码是同样效果的,可以参考一下。

    4天前 来自 浙江

    1
  • 会不会是if括号是齐的但是for没有括号

    5天前 来自 浙江

    1
  • 代码炸了应该

    6天前 来自 浙江

    1

  • 这两道的花括号也没了,到底是啥回事?

    6天前 来自 浙江

    1
    • 这个试卷我刚做完选择判断就懵了,编程题都没做。

      6天前 来自 浙江

      1
    • 没问题啊,for循环仅当循环体包含且仅包含一条语句可以省略,后面的语句会被是为循环体外的

      6天前 来自 浙江

      2
    • 啊?那是我没见识。

      5天前 来自 浙江

      1
  • 这个,疑似是对的,只是码风有点史

    4天前 来自 广东

    0
  • 这个没有问题吧

    4天前 来自 浙江

    0
    • 看起来是

      int N, i;
          cin >> N;
          for (int i = 2; i < N; i++) 
              if (N % i == 0) {
                  cout << "1#";
                  break;
          } else 
          cout << "0#";
      

      其实就是

      for (int i = 2; i < N; i++) 
              if (N % i == 0) {
                  cout << "1#";
                  break;
              } else 
                  cout << "0#";
      

      就只是if有{},else和for是没有括号的,加上去是这样子的

      for (int i = 2; i < N; i++) {
              if (N % i == 0) {
                  cout << "1#";
                  break;
              } else {
                  cout << "0#";
              }
          }
      

      所以这个告诉我们,一定要加{},不然会让人看不懂

      4天前 来自 浙江

      0
    • 4天前 来自 浙江

      0
  • 注意到28这张考了94pts94pts,你要加油了

    4天前 来自 浙江

    0

热门讨论