如果输入的数是0,那你的代码就没有统计到这个0了
把统计数字的循环换成do while
do {
a[num % 10]++;
num = num / 10;
} while(num > 0);
题目中提到输入的N个数是非负整数,那么可能有纯粹是0的输入,那么这时就不会统计了,比如输入n为3, 然后输入是3个0,那么输出应该是 3:0 ,但不满足while (num > 0),不会统计
加入一个num输入就是0的判断:
for (i = 0; i < n; i++)
{
scanf("%d", &num);
if (num == 0)
{
++a[0];
continue;
}
while (num > 0)
{
a[num % 10]++;
num = num / 10;
}
}