Online Compiler C

#include <math.h> #include <stdio.h> int main() { int n, m, flag = 1; if (n <= 1) flag = 0; for (m = 2; m <= sqrt(n); m++) { if (n % m = 0) { flag = 0; } } printf(flag?"Yes\n";"No\n") ; return 0; }
这段代码试图判断一个整数是否为素数,但存在几个关键问题。变量 `n` 没有被初始化,导致程序行为不确定。此外,代码中有语法错误和逻辑问题。

- 变量 `n` 没有从用户输入或赋值获取值,直接使用会导致未定义行为。你需要先给 `n` 一个具体的数值,比如通过 `scanf` 读取用户输入。
- 第8行 `if (n % m = 0)` 中使用了赋值运算符 `=` 而不是比较运算符 `==`。在C语言中,条件判断必须用 `==` 来比较是否相等。