Online Compiler C

#include <stdio.h> int main() { int a; int cnt=0; scanf("%d", &a); while (a > 0) { int d = a % 10; if (d == 9) cnt++; a = a / 10; } if (cnt == 1) printf("YES"); else printf("NO"); return 0; }
这段代码的功能是:读入一个整数,判断它是否恰好包含一个数字9。如果是,输出YES,否则输出NO。它通过不断取末位数字并检查是否为9来统计9的个数。

- 代码的逻辑是正确的,但题目要求可能不是“恰好一个9”。请确认题目是否要求判断数字中是否包含数字9(至少一个),而不是恰好一个。如果是至少一个,那么条件应该改为 cnt > 0 而不是 cnt == 1。
- 另外,如果输入是负数,循环条件 a > 0 会直接跳过,导致 cnt 为0,输出NO。如果题目需要考虑负数,需要先处理符号。