| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 745 人关注过本帖
标题:要考一个 CCF,但是,在网上模拟测试总是 0 分,求解惑?
只看楼主 加入收藏
soulmate1023
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:6
帖 子:256
专家分:831
注 册:2014-9-23
结帖率:91.67%
收藏
已结贴  问题点数:20 回复次数:2 
要考一个 CCF,但是,在网上模拟测试总是 0 分,求解惑?
问题描述
给定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>
#include<stdlib.h>
typedef struct node{
        int v;
        int f;
        }node;
int main()
{
   node n[1001];
   int i,j,num,f_flag=0,ff,max_f,value;
   scanf("%d",&num);

   for(i=0;i<num;i++){
    scanf("%d",&n[i].v);
    n[i].f=1;
    }
    for(i=1;i<num;i++){
     for(j=0;j<i;j++){
       if(n[j].v==n[i].v&&f_flag==0 ){ ff=j; n[ff].f++; continue;}
       else if(n[j].v==n[i].v&&f_flag!=0) {n[ff].f++;continue;}
       else continue;}
       ff=0;
       }
        max_f=0;
        value=n[0].v;
       for(i=1;i<num;i++){
         if(n[i].f>n[max_f].f){max_f=i;  value=n[max_f].v;}
         else if(n[i].f==n[max_f].f)  {value=(n[i].v<n[max_f].v)?n[i].v:n[max_f].v;}
         else continue;
         }
         printf("%d\n",value);
         system("pause");
         return 0;
         }

搜索更多相关主题的帖子: 正整数 网上 
2014-12-06 20:39
comewest
Rank: 5Rank: 5
等 级:职业侠客
威 望:1
帖 子:74
专家分:335
注 册:2014-12-3
收藏
得分:10 
#include<stdio.h>
#define  N 1000
#define  M 10000
int main()
{
    int num[N],count[M]={0}; //num数组中存放输入的数值,count数组中存放每个相同数值的个数
    int i,n,max=0;
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
        scanf("%d",&num[i]);
        count[num[i]]++;//每输入一个数据,该数值对应的count数组元素值增1
    }
    for(i=0;i<N;i++)
       if(count[max]<count[i])
           max=i;
    printf("%d\n",max);
    return 0;
  }

[ 本帖最后由 comewest 于 2014-12-9 12:51 编辑 ]
2014-12-09 12:49
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9029
专家分:54050
注 册:2011-1-18
收藏
得分:10 
程序代码:
#include <stdio.h>

int main()
{
    unsigned n;
    scanf( "%u", &n );

    unsigned short cnt[10001] = { 0 };
    unsigned index = 1;
    for( unsigned i=0; i!=n; ++i )
    {
        unsigned s;
        scanf( "%u", &s );

        ++cnt[s];
        if( cnt[s]>cnt[index] || (cnt[s]==cnt[index] && s<index) )
            index = s;
    }

    printf( "%u\n", index );
    return 0;
}
2014-12-09 13:04
快速回复:要考一个 CCF,但是,在网上模拟测试总是 0 分,求解惑?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.029055 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved