在线编译器 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` 没有初始化,它的初始值是不确定的,这会导致比较结果不可靠。
- 条件判断 `if(num=0)` 使用了赋值运算符 `=` 而不是比较运算符 `==`,这会把 `num` 设为0,并且条件永远为假,导致循环无法正常退出。