c语言输出数字中出现次数最多的数字

img

img

img


这个代码在pta上面显示输出0最多的的答案错误,可是我自己随便输入了一个0最多的是对的,这个到底怎么搞才能正确呀

您好,错误原因是条件考虑不全。题目第二行给定的数据均是非负整数,题主只考虑了s为正整数的情况,增加对0单独考虑的代码即可。
增加的代码参考如下:

if (s == 0)
        a[0]++;

除此之外,while循环体可以优化一下,建议如下:

while (s)  //不知道为什么下面代码字体变灰......
    {
        k = s % 10;
        a[k]++;
        s /= 10;
    }

如果对本回答有疑问,欢迎在回答下方评论!
如果本回答成功帮到你,麻烦动动手指点个采纳,谢谢啦~