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

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

- 变量 `d` 被用于 `scanf`,但从未被定义,而 `n` 没有被初始化就被使用。
- 循环条件 `while(n>0)` 依赖于未初始化的 `n`,导致行为不可预测。
- 变量名 `cymma` 可能是想写 `summa`,但这不是错误,只是可读性差。

- 检查 `scanf` 读取的变量名是否与后续使用的变量名一致。
- 确保在循环开始前,`n` 被赋予正确的输入值。