问题标题: 酷町堂:如何找一个数组中出现次数最多的数

0
0

0
已采纳
宫西诚
宫西诚
修练者
修练者

 

#include<bits/stdc++.h>
using namespace std;
int main()
{
    string b;
    int a[100]={0},max=0,c,l,z;
    cin>>b;
    l=b.size();
    for(int i=0;i<=l-1;i++)
    {
        z=int(b[i]-48);
        a[z]++; 
    }
    for(int i=0;i<=9;i++)
    {
        if(a[i]>max)
        {
            max=a[i];
            c=i;
        }
    }
    for(int i=0;i<=9;i++)
    {
        if(a[i]==max)
        cout<<i<<endl;
    }
    return 0;
}

0
宫西诚
宫西诚
修练者
修练者

定义

循环

输入字符z;

a[z+0]++;

循环判断

如果啊a[i]>0

将i保存下来;

最后输出啊a【保存的i】

0
张马润泽
张马润泽
资深守护
资深守护

@宫西诚   能详细发个代码吗?

谢谢

 

0
张马润泽
张马润泽
资深守护
资深守护

@宫西诚 ,这样吧,你就把长度定义成n,输入n

快!

0
0
0
栾峻岩
栾峻岩
初级天翼
初级天翼

就是用一个桶记录一下:例如a数组和t数组(桶)。

如何记录:t[a[i]]++;记录a[i]这个数出现了几次。

然后排序t数组。(可以使用各种排序方法,自己试验可以手打qsort(快排))。

如果t[b]为最大,则a数组中出现次数最多的数就是b。

0
我要回答