在线编译器 C

#include <stdio.h> int main() { int n; scanf("%d",&n); int last=n%10; n=n/10; while(n>0){ int cur=n%10; if(cur>=last){ printf("NO"); return 0; } last=cur; n=n/10; } printf("YES"); return 0; }
这段代码的功能是判断一个整数的各位数字是否从左到右严格递减。它从最低位开始比较,检查每一位是否都比前一位(更低位)小。

- 你的代码逻辑是从最低位向最高位比较,要求每一位都小于前一位(即更低位)。但题目可能要求的是从左到右严格递减,也就是最高位最大,最低位最小。你的比较方向反了,导致判断条件不正确。
- 提示:你可以考虑先反转数字,或者从最高位开始比较。另外,注意处理负数的情况,虽然题目可能只考虑正整数。