Online Compiler C

#include<stdio.h> int main(){ int n,count; scanf("%d",&n); while(n>0){ count=n%10; if (n/10%10<=count){ printf("NO"); return 0; } n=n/10;} printf("YES"); return 0; }
这段代码试图判断一个整数的各位数字是否从左到右严格递减。它从右向左(从个位开始)检查数字,但逻辑有误。

- 你的代码在循环中把当前个位数字存到 `count`,然后比较 `n/10%10`(即十位数字)是否小于等于 `count`。但这样比较的是相邻两位,且方向是从右向左,而题目要求可能是从左到右递减。你需要明确比较的方向和顺序。
- 另外,变量 `count` 没有初始化,但这不是主要问题。主要问题是比较逻辑可能反了:如果发现十位数字小于等于个位数字,就输出 NO,这实际上是在检查是否递增,而不是递减。你需要思考递减的定义:从左到右,每一位都比后一位大。你的循环从右向左处理,那么当前位(个位)应该比前一位(十位)小才对。