Online Compiler C

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

代码整体思路正确,但有一个关键问题:变量 `sum` 的名字容易让人误解,它实际上存储的是输入的三位数,而不是求和的结果。另外,代码假设输入的一定是三位数,如果输入其他数字(比如两位数或四位数),逻辑会出错。

- 检查一下变量命名:`sum` 通常表示总和,这里用来存储输入的数字,容易混淆。可以考虑用更合适的名字,比如 `num`。
- 思考一下:如果输入的数字不是三位数(比如 12 或 1234),你的代码还能正确找出各位数字中的最大值吗?如何让代码更通用?