ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

出现次数最多的数问题

2021-07-17 17:05:12  阅读:155  来源: 互联网

标签:10000 数字 int max 问题 次数 最多 输入


目录

一、题目详情

二、代码剖析


一、题目详情

问题描述

  给定n个正整数,找出它们中出现次数最多的数。如果这样的数有多个,请输出其中最小的一个。

输入格式

  输入的第一行只有一个正整数n(1 ≤ n ≤ 1000),表示数字的个数。
  输入的第二行有n个整数s1, s2, …, sn (1 ≤ si ≤ 10000, 1 ≤ i ≤ n)。相邻的数用空格分隔。

输出格式

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

样例输入

6
10 1 10 20 30 20

样例输出

10


二、代码剖析

思路:下标法

#include<stdio.h>
int main()
{
	int n; //定义一个整型变量n,表示数字的个数
	scanf("%d",&n);
	int k; //定义一个整形变量k,表示需要输入的数字 
	int max=0,count[10000]={0}; //定义一个整型变量max并初始化为0,是为了便于后面对“出现的次数”作比较 
								//下标法:将输入的数字作为该数组的下标 
								//创建一个数组count[10000](所需要输入的数字的取值范围为1≤si≤10000),用来统计该数字重复的次数
	for(int i=0;i<n;i++)
	{
		scanf("%d",&k);
		count[k]++; //若该数字每重复一次,则重复的次数加一 
	}
	
	for(int i=0;i<=10000;i++)
	{
		if(count[i]>count[max]) //对这n个数字出现的次数进行比较,如果这样的数有多个,则输出其中最小的一个 
		{
			max=i; //max即为重复次数最多,且数字最小的那个数 
		}
	}
	
	printf("%d\n",max);
	return 0;
}

标签:10000,数字,int,max,问题,次数,最多,输入
来源: https://blog.csdn.net/qq_56597639/article/details/118859143

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有