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

#include<stdio.h> int main() { int n,count=0; scanf("%d",&n); if(n,0) n=-n; while(n>0) { if(n%2!=0) { count++; } } n=n/10; if(count==0) { printf("YES"); } else{ printf("NO"); } return 0; }
这段代码的目的是判断一个整数中是否所有数字都是偶数(即没有奇数数字)。但代码中存在逻辑错误,导致它无法正确工作。

主要问题在于:
- 条件判断 `if(n,0)` 是错误的语法,它不会正确判断 n 是否为负数。
- `n=n/10` 这一行被放在了 while 循环外面,导致循环永远不会结束(因为 n 的值在循环内没有变化)。
- 变量 count 的计数逻辑与最终判断条件不匹配。

- 检查 `if(n,0)` 这一行,思考逗号运算符在这里的实际效果是什么,以及如何正确判断一个数是否为负数。
- 注意 while 循环的循环体应该包含哪些语句,确保每次循环都能更新 n 的值(比如去掉最后一位数字),否则循环会无限执行。