这段代码试图计算两个数的最大公约数(GCD),但逻辑有误。它遍历从1到较小数的所有整数,检查a/c和b/c是否相等,但这种方法并不能正确找到最大公约数。 - 你的判断条件 `m == n` 实际上是在检查 a/c 和 b/c 是否相等,这等价于 a 和 b 相等,而不是找到公约数。例如,当 a=3, b=4 时,任何 c 都不会让 m 和 n 相等,所以 max 保持未初始化状态,导致未定义行为。 - 正确的思路应该是检查 c 是否能同时整除 a 和 b,即 a % c == 0 && b % c == 0。你需要修改循环内的判断条件,而不是比较除法结果。