| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 745 人关注过本帖
标题:要考一个 CCF,但是,在网上模拟测试总是 0 分,求解惑?
取消只看楼主 加入收藏
soulmate1023
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:6
帖 子:256
专家分:831
注 册:2014-9-23
结帖率:91.67%
收藏
已结贴  问题点数:20 回复次数:0 
要考一个 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
快速回复:要考一个 CCF,但是,在网上模拟测试总是 0 分,求解惑?
数据加载中...
 
   



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

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