寻找出现次数最多的数(oj题库)

题目描述

给定n个正整数,找出它们中出现次数最多的数。如果这样的数有多个,请输出其中最小的一个。
输入
输入的第一行只有一个正整数n(1 ≤ n ≤ 1000),表示数字的个数。输入的第二行有n个整数s1, s2, …, sn (1 ≤ si ≤ 10000, 1 ≤ i ≤ n)。相邻的数用空格分隔。

输出
输出这n个次数中出现次数最多的数。如果这样的数有多个,输出其中最小的一个。

#include<iostream>
using namespace std;
int main()
{
	int tong[100]={0},num,n,i,max=0,flag=0,ans=0;
	cin>>n;//数据个数 
	for(i=0;i<n;i++)
	{
		cin>>num;//输入的数据 
		tong[num]++;//统计每个数据的出现次数 
		if(num>max)
		{
			max=num;
		}
	}
	for(i=0;i<=max;i++)//每个数出现次数的比较,一定要注意是 i<=max
	{
		if(tong[i]>flag)
		{
			flag=tong[i]; 
			ans=i;//此时i为之前输入的数据 
		}
	}
	cout<<ans;
	return 0;
 } 

这道题逻辑还是挺简单的,就不分析了哈。

  • 2
    点赞
  • 1
    评论
  • 4
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 1024 设计师:白松林 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值