在线编译器 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; }
这段代码的功能是判断一个整数的各位数字是否从左到右非递增(即每一位都不大于前一位)。它从最低位开始比较,如果发现某一位比它右边的位大,就输出NO,否则输出YES。

- 你的代码从最低位开始比较,但题目可能要求从最高位开始判断。检查一下你的比较方向是否符合题目的“从左到右”要求。
- 注意循环中更新last的方式:你每次把cur赋给last,但cur是当前最低位,这样比较的是相邻两位,但方向是反的。思考一下如何调整才能正确比较从左到右的顺序。