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

#include <stdio.h> int main() { int num,x,y,z,max; scanf("%d",&num); x=num/100; y=(num%100)/10; z=num%10; max=x; if(y>max){ max=y; } if(z>max){ max=z; } printf("%d",max); return 0; }
这段代码的功能是:从用户输入一个三位整数,然后分别提取它的百位、十位和个位数字,最后找出这三个数字中的最大值并输出。

你的代码逻辑基本正确,但有一个潜在问题需要注意:

- 当输入的数字不是三位数时(比如两位数或一位数),提取数字的方式会出错。例如输入 12,百位会变成 0,但实际期望可能是找出 1 和 2 中的最大值。你需要考虑输入数字的位数范围。

- 另外,如果输入的是负数,取模运算的结果可能不符合预期,因为 C 语言中负数取模会得到负数。你可以思考是否需要处理负数的情况。