Online Compiler C

#include <stdio.h> int main() { int n, a, o = 0, j = 0; scanf("%d", &n); // n = 1235; if (n == 0) printf("1 0"); else { while (n != 0) { a = n % 10; if (a % 2 == 0) o++; else j++; n = n / 10; } printf("%d %d", o, j); } return 0; }
这段代码的功能是统计一个整数中偶数和奇数的个数。它从用户输入一个整数,然后通过循环逐位取出数字,判断奇偶并计数,最后输出偶数个数和奇数个数。

- 代码中变量 `o` 用来统计偶数个数,`j` 用来统计奇数个数,但变量命名不够直观,容易混淆。
- 当输入为负数时,循环条件 `n != 0` 仍然成立,但取模运算 `n % 10` 在负数情况下会得到负的余数,导致奇偶判断出错。例如 `-123` 的个位 `-3` 会被误判为偶数。