CSP201312-01
问题描述
首先输入正整数,接着输入n个正整数,求出其中出现次数最多的,如果次数相同则给出最小的那个
问题分析
代码
第一种方法(c语言)
代码如下:
#include<stdio.h>
#include<string.h>
#define N 10000
int sicount[N+1];
int main(void)
{
int n,v,i;
/*memset作用就是在一段内存块中 填充某个给定的值
对于较大的结构体或数组进行清零操作的一种最快方法*/
/*原型:extern void *memset(void *buffer, int c, int count);
功能:把buffer所指内存区域的前count个字节设置成字符c。
就是(第一个)是要进行操作的结构体或数组,第二个就是要赋予的值
第三个就是要修改的长度*/
//用的时候需要使用头文件#include<stdio.h>
memset(sicount,0,sizeof(sicount));
scanf("%d",&n);
while(n--)
{
//这样输入可以直接
scanf("%d",&v);
sicount[v]++;
}
int ans,maxcount=0;
for(i=1;i<=N;i++)
{
if(sicount[i]>maxcount)
{
ans = i;
maxcount = sicount[i];
}
}
printf("%d\n",ans);
return 0;
}