在线编译器 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。

代码的逻辑是:如果数字9出现次数大于1或者等于0,就输出NO;否则(即恰好出现1次)输出YES。

- 检查条件 `count > 1 || count == 0` 的逻辑。题目要求是什么?是判断是否“恰好出现一次”吗?如果是,那么当 count 等于 1 时应该输出 YES,否则输出 NO。你的条件中 `count > 1` 和 `count == 0` 都输出 NO,只有 count 等于 1 时输出 YES,这个逻辑是正确的。但请确认题目是否要求“至少出现一次”或其他条件。

- 注意输入可能为负数。如果 n 是负数,while 循环不会执行,count 保持为 0,会输出 NO。如果题目要求处理负数,可能需要考虑绝对值。