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

#include <stdio.h> int main() { int input,num,odd,even; scanf("%d",input); int a[10]={0}; while(input>0) { num = input%10; a[num]++; input = input/10; } odd = a[1]+a[3]+a[5]+a[7]+a[9]; even= a[0]+a[2]+a[4]+a[6]+a[8]; printf("%d %d",even,odd); return 0; }
这段代码的目的是统计一个整数中各位数字里奇数和偶数的出现次数。它通过取余和除法分解数字的每一位,然后用数组记录每个数字出现的次数,最后分别累加奇数和偶数的计数。

- 第6行的 scanf 函数使用方式有误。scanf 需要传入变量的地址,而不是变量本身。你应该在变量名前加上 & 符号,这样 scanf 才能正确地将输入的值存储到变量中。

- 第7行定义的数组 a 大小为10,但代码中只使用了索引0到9,这没有问题。不过要注意,如果输入的数字包含重复的数字,数组会正确记录每个数字出现的次数。