这段代码定义了一个分段函数 f(x),然后在 main 函数中从标准输入读取整数,对每个数调用 f 计算,并试图找出所有结果中的最大值。但代码中存在逻辑错误,导致无法正确找出最大值。 - 在 main 函数的循环中,每次读取 n 后,将 f(n) 的结果赋给 answer,然后又赋给 save_n。接着判断 if(answer < save_n),但此时 answer 和 save_n 是同一个值,这个条件永远不成立,所以实际上没有进行任何比较。你需要一个变量来保存当前遇到的最大值,并在每次计算后与这个最大值比较更新。 - 另外,变量 save_n 的初始值没有意义,因为它在循环中每次都被重新赋值。你应该用一个变量(比如 max)来记录最大值,并初始化为一个很小的数(比如 -2147483648),然后在循环中每次计算 f(n) 后,如果结果大于 max,就更新 max。