The most frequent number CSP201312-1 (simple c language solution)

问题描述  
给定n个正整数,找出它们中出现次数最多的数。
如果这样的数有多个,请输出其中最小的一个。
输入格式  
	输入的第一行只有一个正整数n(1 ≤ n ≤ 1000),表示数字的个数。
	输入的第二行有n个整数s1, s2,, sn (1 ≤ si ≤ 10000, 1 ≤ i ≤ n)。相邻的数用空格分隔。
	输出格式  
	输出这n个次数中出现次数最多的数。如果这样的数有多个,输出其中最小的一个。
	样例输入
	6
	10 1 10 20 30 20
	样例输出10
解题思路:
	设置数组s,保存数字出现的次数
#include<stdio.h>
#include<string.h>//用了memset
#define MAXN 10002
int s[MAXN];
 
int main(){
    
    
 memset(s,0,sizeof(s));//数组初始化 
 int n=0,i=0,temp=0,cishu=0,flag=0;
 scanf("%d",&n);
 
 for(i=0;i<n;i++){
    
    
  scanf("%d",&temp);
  s[temp]++; 
 } 
 for(i=0;i<MAXN;i++){
    
    //注意这里是MAXN 因为要确保把所有的可能数字都考虑到
  if(s[i]>cishu){
    
    
   cishu=s[i];
   flag=i;
  }
 }
 printf("%d",flag);
 return 0;
} 

Guess you like

Origin blog.csdn.net/weixin_45663946/article/details/108842513