这段代码定义了一个分段函数 f(x),并在 main 中读取一个整数 n,然后进入一个 while 循环。循环中反复调用 f(n),但循环条件 n!=0 永远为真,因为循环体内没有改变 n 的值,所以这是一个死循环。另外,变量 save_n 的更新逻辑似乎是想记录最大值,但比较方向反了,而且也没有在循环中更新 n 的新输入。 - 你的 while 循环缺少改变 n 的语句,比如在循环内再次调用 scanf 读取新的 n,否则循环会无限执行下去。 - 变量 save_n 的更新条件 if(save_n<n) 看起来是想保存最大值,但初始 save_n 等于第一个 n,之后没有新输入,这个比较没有意义。你需要明确程序的目标是处理多个输入还是单个输入。