gpt4 book ai didi

c - 返回哪个数字出现次数最多

转载 作者:行者123 更新时间:2023-12-02 03:22:38 25 4
gpt4 key购买 nike

我必须返回数字中出现次数最多的数字(虽然不是出现次数)

到目前为止我只能得到这个,我不知道如何隔离数字,只能显示每个数字出现了多少次。

#include <stdio.h>

int frequentDigit(int);

int main()
{
frequentDigit(123032333);
return 0;
}

int frequentDigit(int arg)
{
int tmp; int i; int myArr[9] = { 0 };
tmp = (arg < 0) ? -arg : arg;
do
{
myArr[tmp % 10]++;
tmp /= 10;
} while (tmp != 0);
for (i = 0; i < 9; i++) { printf("\nThere are %d occurances of digit %d", myArr[i], i); }
}

最佳答案

存储数字频率的数组,即 myArr[]。它假设保存从 0...9 开始的所有数字的频率。由于有 10 个数字,您需要一个长度为 10 的数组。

int myArr[10];

稍后需要遍历一次数组,检查最大元素,并相应保存索引,找出出现次数最多的数字。

要遍历,for 循环应该一直到 9

for (i = 0; i <= 9; i++)

已编辑

正如有人评论的那样,您可以在计算频率本身时找到 max 值。

int max = -1, max_num = -1;
do
{
myArr[tmp % 10]++;
if( myArr[tmp % 10] > max)
{
max = myArr[tmp % 10];
max_num = tmp % 10;
}
tmp /= 10;
} while (tmp != 0);
printf("%d", max_num);

关于c - 返回哪个数字出现次数最多,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32233492/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com