Online Compiler C

#include <stdio.h> int main() { int n; scanf("%d",&n); int count=0; while(n>0){ int current_digit=n%10; if(current_digit==9){ count++; } n/10; } if(count==1){ printf("YES"); } printf("NO"); return 0; }
这段代码试图判断一个整数中是否恰好包含一个数字9。但代码中存在逻辑错误,导致输出结果不正确。

主要问题在于循环内部没有正确更新变量n的值,导致循环可能无限运行或无法正确遍历每一位数字。

- 第13行 `n/10;` 只是计算了n除以10的结果,但没有将这个结果赋值回n。你需要将n更新为n除以10后的值,否则循环会一直检查同一个数字。
- 另外,当count不等于1时,程序也会输出"NO",但当前代码在判断后没有使用else或提前结束,导致无论count是否为1,都会输出"NO"。你需要确保当count等于1时只输出"YES",否则只输出"NO"。