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

#include <stdio.h> int main() { int n; scanf("%d",&n); int x=n%10; int flag=1; while(n!=0) { int y=n%10; if(y>=x) { flag=0; } x=y; n=n/10; } if(flag==1) printf("YES"); else printf("NO"); return 0; }
这段代码的功能是判断一个整数的各位数字是否严格递减(从高位到低位)。它从最低位开始比较相邻数字,如果发现某一位不小于前一位(即不满足递减),就将标志设为0。

- 你的循环是从最低位向最高位处理的,但判断递减的方向可能反了。检查一下你比较的是哪两个相邻的数字,以及递减的方向应该从高位到低位还是从低位到高位。
- 注意变量x的初始值取自最低位,但后续比较中x被更新为当前位的数字,这可能导致第一次比较的逻辑与预期不符。思考一下初始x应该代表什么位置上的数字。