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

#include <stdio.h> int main() { int n; scanf("%d",&n); int x=n%10; 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保存的是前一个(更低位)的数字,y是当前位。条件y>=x表示当前位不小于更低位,这对应的是递增趋势。你需要思考如何修改条件,使得能正确检测递减趋势。