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

#include <stdio.h> int main() {int n,a,b=0; scanf("%d",&n); while (n>0){ a=n%10; b=b+a; n=n/10;} if (b=10){ printf("YES"); } else {print("NO");} return 0; }
这段代码试图判断一个整数各位数字之和是否等于10,但存在几个问题。

- 第9行 `if (b=10)` 使用了赋值运算符 `=` 而不是比较运算符 `==`,这会导致条件永远为真,因为赋值表达式的值就是10(非零),所以总是输出"YES"。
- 第12行 `print("NO")` 写成了 `print` 而不是 `printf`,会导致编译错误。

- 检查第9行,将赋值改为比较。
- 检查第12行,函数名是否正确。