txtqaq 发表于 2024-10-23 22:37:03

看着小甲鱼C语言 for 循环敲得 看来几遍还是报错

#include <stdio.h>
#include <stdlib.h>
int main()
{
    int i, num;
    _Boolflag =1;
    printf("请输入一个整数;");

    scanf("%d",&num);

    for (i = 2; i < num / 2; i++)
    {
      if (num % i == 0)
      
      {
         flag = 0;


      }
    }   
    if (flag)
      {
            print("%d是一个素数",num);



      }
      else
      {

            printf("%d不是一个素数",num);
      }
   

      return 0;

    }
   
      







system("pause");

    return 0;
}

FishC 发表于 2024-10-23 22:37:10

你代码里的几个错误需要修正:

1. 需要包含头文件:`#include <stdio.h>`。

2. `for`循环的终止条件应为 `i <= num / 2`,因为当 `i == num / 2` 时也需要进行检查。

3. `printf`拼写错误,应为 `printf` 而不是 `print`。

4. `system("pause")` 和 `return 0;` 被重复,且 `system("pause")` 通常需要在 `#include <stdlib.h>` 环境中使用,并且多用于Windows系统。

修正后的代码:

#include <stdio.h>

int main() {
    int i, num;
    _Bool flag = 1;
    printf("请输入一个整数:");

    scanf("%d", &num);

    for (i = 2; i <= num / 2; i++) {
      if (num % i == 0) {
            flag = 0;
            break; // 增加break,可以优化一点性能
      }
    }

    if (flag) {
      printf("%d是一个素数\n", num);
    } else {
      printf("%d不是一个素数\n", num);
    }

    return 0;
}

这样修改后,应能正常运行。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

jackz007 发表于 2024-10-23 23:13:18

#include <stdio.h>
#include <stdlib.h>
int main()
{
    int i, num    ;
    int flag = 1;                     // 【错误1】:把 _Bool 改为 int
    printf("请输入一个整数;");

    scanf("%d",&num);

    for (i = 2; i < num / 2; i++)
    {
      if (num % i == 0)
      
      {
         flag = 0;


      }
    }   
    if (flag)
      {
            printf("%d是一个素数",num);// 【错误2】:把 print() 改为 printf()



      }
      else
      {

            printf("%d不是一个素数",num);
      }
   

      return 0;

    }

txtqaq 发表于 2024-10-24 12:05:18

jackz007 发表于 2024-10-23 23:13


小甲鱼上面不是用_Bool 来定义布尔类型的吗?

txtqaq 发表于 2024-10-24 12:06:03

jackz007 发表于 2024-10-23 23:13


感谢回复只是还有一点小疑惑
页: [1]
查看完整版本: 看着小甲鱼C语言 for 循环敲得 看来几遍还是报错