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

#include <stdio.h> int main() { int n; int count = 0; scanf("%d", &n); while (n > 0) { int d = n % 10; n = n / 10; if (d == 9) { count = count + 1; } } if (count >1||count=0) printf("NO"); else printf("YES"); return 0; }
这段代码的功能是:读入一个整数,统计其中数字9出现的次数,然后根据次数输出"YES"或"NO"。但判断条件写错了。

- 第14行 `if (count >1||count=0)` 中,`count=0` 是赋值操作,不是比较。在C语言中,比较相等要用 `==`,而不是 `=`。赋值表达式的结果是赋的值,所以这里条件永远为真,导致程序总是输出"NO"。

- 另外,逻辑上你可能想表达“如果9的个数大于1或者等于0”,但通常这类题目要求是“恰好出现一次9”才输出YES。请检查你的判断条件是否准确表达了你的意图。