这个怎么用c语言编呀

【问题描述】 输入一组无序的整数,编程输出其中出现次数最多的整数及其出现次数。 【输入形式】 先从标准输入读入整数的个数(大于等于1,小于等于100),然后在下一行输入这些整数,各整数之间以一个空格分隔。 【输出形式】 在标准输出上输出出现次数最多的整数及其出现次数,两者以一个空格分隔;若出现次数最多的整数有多个,则按照整数升序分行输出。 【样例输入】 10 0 -50 0 632 5813 -50 9 -50 0 632 【样例输出】 -50 3 0 3 【样例说明】 输入了10个整数,其中出现次数最多的是-50和0,都是出现3次。

#include <stdio.h>

int main()

{

    int a[50],b[50],c[50],n,i,j,t,max;

    scanf("%d",&n);

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

       {

        scanf("%d",&a[i]);

       }

    for(i=1;i<n;i++)

        for(j=0;j<n-1;j++)

        {

          if(a[j]>a[j+1])

          {

              t=a[j];

              a[j]=a[j+1];

              a[j+1]=t;

          }

        }

        j=0;

        t=-1;

    for(i=0;i<n-1;i++)

        {

            if(a[i]!=a[i+1])

            {

                b[j]=i-t;

                c[j]=i;

                t=i;

                j++;

            }

        }

           b[j]=n-1-t;

           c[j]=n-1;

        max=b[0];

    for(i=1;i<=j;i++)

    {

        if(max<b[i])

            {

                max=b[i];

            }

    }

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

        if(b[i]==max)

    {

        t=c[i];

        printf("%d %d\n",a[t],b[i]);

    }

    return 0;

}

 

用hash表做

#include <vector>
#include <stdio.h>
#include <string>
using namespace std;
#pragma warning(disable:4996)
#include <iostream>
#include <string>
#include <algorithm>
#include <vector>
using namespace std;
class A {
public:
	int number;
	int count;
};
bool cmp(A a, A b) {
	return a.count > b.count;
}
int main() {
	vector<A> list;
	
	int n = 0;
	scanf("%d", &n);
	for (int i = 0; i < n; i++) {
		int x = 0;
		scanf("%d", &x);
		bool find = false;
		for (int j = 0; j < list.size(); j++) {
			if (list[j].number == x) {
				list[j].count++;
				find = true;
			}
			else {
				continue;
			}
		}
		if (!find) {
			A a;
			a.number = x;
			a.count = 1;
			list.push_back(a);
		}
		
	}
	sort(list.begin(), list.end(), cmp);
	for (int i = 0; i < 2; i++) {
		printf("%d %d ", list[i].number, list[i].count);
	}
}

 

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632