Online Compiler C

#include <stdio.h> int main() { int num,max; while(1){ scanf("%d",&num); if(max<num){ max=num; } if(num==0) break; } printf("%d",max); return 0; }
这段代码试图从输入中找出最大的整数,直到输入0为止。但代码有一个关键问题:变量 `max` 没有初始化,它的初始值是不确定的。

- 变量 `max` 在使用前没有被赋初值。当第一次比较 `max < num` 时,`max` 的值是随机的,可能导致错误的结果。应该考虑如何给 `max` 一个合理的初始值。
- 如果所有输入都是负数,那么 `max` 的初始值可能比所有输入都大,导致最终输出错误。思考一下,当输入第一个非零数时,如何确保 `max` 能正确记录这个数。