C语言求一批整数中出现最多的个位数字

2025-02-27 13:32:15
推荐回答(2个)
回答1:

如果输入的数是0,那你的代码就没有统计到这个0了

把统计数字的循环换成do while

    do {

      a[num % 10]++;

      num = num / 10;

    } while(num > 0);

回答2:

题目中提到输入的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;

}

}