Онлайн компилятор C

#include <stdio.h> int main() { int num,max; scanf("%d",&num); max = num; while(num!=0){ scanf("%d",&num); if(num>max){ max=num; } if(num == 0){ printf("%d",max); } } return 0; }
这段代码的功能是:从输入中读取一系列整数,当遇到0时停止,并输出这些整数中的最大值。

代码的主要逻辑是:先读取第一个数作为初始最大值,然后循环读取后续数字,每次比较并更新最大值,当读到0时输出结果。

- 你的代码在读取第一个数后立即将其设为最大值,但你没有处理输入中可能只有0的情况。如果第一个输入就是0,程序会直接输出0,这可能是正确的,但需要确认题目要求。
- 你的循环中,每次读取新数字后都检查是否为0,如果是则输出最大值。但输出语句放在循环内部,这意味着每次读到0都会输出一次。如果输入中有多个0,程序会输出多次结果。通常只需要在循环结束后输出一次最大值。