| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 635 人关注过本帖
标题:请问,这个程序有什么问题,请帮我精简一下
取消只看楼主 加入收藏
zrf625278699
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2008-10-14
收藏
 问题点数:0 回复次数:1 
请问,这个程序有什么问题,请帮我精简一下
问题描述:
给定含有n个元素的多重集合S,每个元素在S中出现的次数称为该元素的重数。多重
集S中重数最大的元素称为众数。
例如,S={1,2,2,2,3,5}。
多重集S的众数是2,其重数为3。

对于给定的由n 个自然数组成的多重集S,计算S的众数及其重数。

数据输入:

输入多重集S中元素个数n;接下来的n行中,每行有一个自然数。

结果输出:

输出第1行给出众数,第2 行是重数。

Sample Input

6
1
2
2
2
3
5

Sample Output

2
3



#include<stdio.h>
int main()
{
    int a[100],n;
    while(1==scanf("%d",&n))
    {
        int i,j,b[100],t;

        for(i=0;i<n;i++)scanf("%d",&a[i]);
        for(j=0;j<n-1;j++)
        {
            for(i=0;i<n-j-1;i++)
                if(a[i]>a[i+1])
                {
                    t=a[i];
                    a[i]=a[i+1];
                    a[i+1]=t;
                }
        }
        b[0]=1;
        for(i=0;i<n;i++)
        {
            if(a[i+1]>a[i]) b[i+1]=1;
            if(a[i+1]==a[i]) b[i+1]=b[i]+1;
        }
        int max=b[0],c;
        for(i=1;i<n;i++)
        {
            if(b[i]>max) {max=b[i];c=i;}
        }
        printf("%d\n%d\n",a[c],max);
        for(i=c+1;i<n;i++)
        {
            if(b[i]==max) printf("%d\n%d\n",a[i],b[i]);
        }
        
    }

    return 0;
}

各位大哥大姐  帮忙看看  帮我精简一下  或者把你们的结果给我看看  谢过了!!!!!
搜索更多相关主题的帖子: 精简 
2008-10-16 21:45
zrf625278699
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2008-10-14
收藏
得分:0 
谢谢   只是我用的是VC6.0    你的程序  
2008-10-17 11:22
快速回复:请问,这个程序有什么问题,请帮我精简一下
数据加载中...
 
   



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

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