在线编译器 C

#include <stdio.h> int main() { int n,i=0; scanf("%d",&n); while(n>0){ n=n/10; i++; } if(i==3){ printf("YES"); }else{ printf("NO"); } return 0; }
这段代码的功能是:读取一个整数,然后通过不断除以10来统计它的位数,最后判断位数是否等于3,输出YES或NO。

- 代码中直接修改了变量n的值,导致循环结束后n变成了0,丢失了原始输入数据。如果需要保留原始值,可以考虑使用另一个变量来存储n的副本进行位数统计。
- 对于负数输入,循环条件n>0会直接跳过,导致i保持为0,输出NO。如果题目要求处理负数,需要先取绝对值或调整判断逻辑。