Online Compiler C

#include <stdio.h> int main() { int n, max = 0; while (scanf("%d", &n) == 1 && n != 0) { if (n > max) { max = n; } } printf("%d", max); return 0; }
这段代码从标准输入读取一系列整数,直到遇到0为止,然后输出这些数中的最大值。它使用while循环不断读取,每次更新最大值变量max。

- 代码假设输入中至少有一个非零数,但如果第一个数就是0,循环不会执行,max保持初始值0,输出0。如果所有输入都是负数,max初始化为0会导致输出0,但实际最大值可能是负数,这是不正确的。
- 考虑一下,如果输入全是负数,max的初始值应该设为什么?可以思考如何用一个特殊值来表示“还没有读取任何有效数字”的状态。