试题名称:出现次数最多的数
时间限制:1.0s
内存限制:256M
问题描述:给定 n 个正整数,找出它们中出现次数最多的数。如果这样的数有多个,请输出其中最小的一个
输入格式:输入的第一行只有一个正整数 n(1 ≤ n ≤ 1000),表示数字的个数。输入的第二行有 n 个整数 s1, s2, …, sn (1 ≤ si ≤ 10000, 1 ≤ i ≤ n)。相邻的数用空格分隔。
输出格式:输出这 n 个次数中出现次数最多的数。如果这样的数有多个,输出其中最小的一个
样例输入:
6
10 1 10 20 30 20
样例输出
10
JAVA程序代码
import java.util.Scanner;
/**
* 试题名称:出现次数最多的数
* 时间限制:1.0s
* 内存限制:256M
* 问题描述:给定 n 个正整数,找出它们中出现次数最多的数。如果这样的数有多
个,请输出其中最小的一个
输入格式:输入的第一行只有一个正整数 n(1 ≤ n ≤ 1000),表示数字的个数。
输入的第二行有 n 个整数 s1, s2, …, sn (1 ≤ si ≤ 10000, 1 ≤ i
≤ n)。相邻的数用空格分隔。
输出格式:输出这 n 个次数中出现次数最多的数。如果这样的数有多个,输出其中最小的一个
样例输入:
6
10 1 10 20 30 20
样例输出
10
* @author dell
*
*/
public class csp201301 {
public static void main(String[] args) {
int num[],n;
int count[] = new int[10000];
Scanner scanner = new Scanner(System.in);
System.out.print("请输入数字的数量:");
n = scanner.nextInt();
num = new int[n];
System.out.println();
System.out.println("请输入要输入的数字:");
for (int i = 0; i < n; i++) {
num[i] = scanner.nextInt();
count[num[i]]++;
}
int max_index = 0;
for (int i = 0; i < n; i++) {
if (count[num[i]] > count[num[max_index]]) {
max_index = i;
}
}
System.out.println("出现次数最多的数字是:"+num[max_index]);
}
}
C语言程序
#include <stdio.h>
int main()
{
int num[1000],count[10000],n,i=0;
printf("请输入数字的数量:");
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&num[i]);
count[num[i]]++;
}
int max_index = 0;
for(i=0;i<n;i++)
{
if(count[num[i] > count[max_index]])
{
max_index = i;
}
}
printf("出现次数最多的数字是:%d\n",num[max_index]);
return 0;
}
备注:这样写程序,针对只有一个数字出现次数最多是没问题的,可是当存在多个数字出现次数最多就存在各种问题了,后期可能会给出解决这个问题的方法