| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 796 人关注过本帖
标题:新手,请教
只看楼主 加入收藏
zrf625278699
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2008-10-14
收藏
 问题点数:0 回复次数:9 
新手,请教
问题描述:
给定含有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
搜索更多相关主题的帖子: 自然数 最大的 元素 
2008-10-16 17:45
zrf625278699
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2008-10-14
收藏
得分:0 
救我啊
2008-10-16 21:38
lovemimi
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2008-10-12
收藏
得分:0 
#include "stdio.h"
int main()
{
    int i,j,m,p=0,q=0,count=1;
    int max;
    int a[100],b[100],c[100];
    printf("请输入元素个数:\n");
    scanf("%d",&i);
    getchar();
    for(j=0;j<i;j++)
    {
        printf("请输入元素:\n");
        scanf("%d",&a[j]);
        getchar();
    }
    for(m=0;m<i;m++)
    {
        if(a[m]==a[m+1])
            count++;
        else
        {
            b[p++]=a[m];
            c[q++]=count;
            count=1;
        }
    }
    max=c[0];
    for(i=0;i<q;i++)
    {
        if(c[i]<c[i+1])
        {
            max=c[i+1];
            j=i+1;
        }
    }
    printf("众数为:");
    printf("%d\n",b[j]);
    printf("众数的重数为:");
    printf("%d\n",max);
    return 0;
}




经调试确定执行结果正确
2008-10-16 22:58
欧阳君雅
Rank: 1
等 级:新手上路
帖 子:71
专家分:0
注 册:2008-9-29
收藏
得分:0 
三个个问题:1.如果集合S中所有的数都不相等,是不是没有众数?
            2.如果重数最大的不止一个,比如11223344,是不是没有众数?
            3.光给你忙编程去了,我到现在作业还没做呢,明天要交,怎么办啊?

#include"stdio.h"
#include"stdlib.h"
void main()
{
    int *p,*q,*A,*B;
    int n;
    int i,j,max2,num=1,max=0;
    int king=0,nub,temp;
    printf("请输入多重集中的元素个数:");
    scanf("%d",&n);
    p=(int *)calloc(2,n);
    q=(int *)calloc(2,n);
    A=p;
    B=q;
    for(i=0;i<n;i++)
        scanf("%d",p+i);
    for(i=0;i<n;i++)
        *(q+i)=1;
    for(i=1;i<n;i++)
        for(j=0,p=A;j<=n-i;j++,p++)
        {
            if(*p>*(p+1))
            {
                temp=*p;
                *p=*(p+1);
                *(p+1)=temp;
            }
            else
                continue;
        }
    p=A;
    
    //for(i=0;i<n;i++)
        //printf("%d",*(p+i));

    for(i=0;i<n-1;i++,p++)
    {
        if(*p==*(p+1))
        {
            (*q)++;
        }
        else
        {
            q++;
            num++;
        }
    }
    if(num==n)
        printf("\n所有的元素重数都为1。\n");
    else
    {
        for(i=0;i<num;i++)
        {
            if(*(B+i)>max)
            {
                max=*(B+i);
                nub=i;
            }
            else if(*(B+i)==max)
            {
                max2=*(B+i);
            }
        }
    
        for(i=0;i<=nub;i++)//要把从0开始一直到nub都加起来
            king+=*(B+i);
        if(max==max2)
            printf("重数最大的元素不止一个,所以众数不存在。");
        else
            printf("众数为:%d       其重数是:%d\n",*(A+king-1),max);
    }
}
2008-10-16 23:42
欧阳君雅
Rank: 1
等 级:新手上路
帖 子:71
专家分:0
注 册:2008-9-29
收藏
得分:0 
三楼的。。。bug。。。太多了。。。。。
2008-10-16 23:51
zrf625278699
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2008-10-14
收藏
得分:0 
回复 4# 欧阳君雅 的帖子
感激涕零啊
2008-10-17 11:32
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
每个元素在S中出现的次数称为该元素的重数
S中重数最大的元素称为众数

如果是一样的,那就重复算啦。
觉得N 有限制的话直接开个数组就快多了。

倚天照海花无数,流水高山心自知。
2008-10-17 11:40
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
不好意思,应该是看这组数里面最大的数不是很大的话就直接开个数组。
当然设置个标记也是一样的,但这样就没法重复了。

倚天照海花无数,流水高山心自知。
2008-10-17 11:42
zrf625278699
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2008-10-14
收藏
得分:0 
回复 8# nuciewth 的帖子
我也是想 如果是一样的次数的话 就都打印   
我现在还自会用数组   别的还没有学 以后要多靠各位了啊 小弟 谢过先
2008-10-17 12:48
liyanhong
Rank: 3Rank: 3
来 自:水星
等 级:禁止访问
威 望:8
帖 子:1867
专家分:0
注 册:2008-5-3
收藏
得分:0 
数组用的化也很强大的
数组可以模拟 链表 树 ...

爱上你 是 我的错  可是离 开  又舍不得  听着你为我写的歌     好难过
如果说 我说如果  我们还 能  重新来过   不去计 较 谁对谁错  会怎么做
2008-10-17 12:51
快速回复:新手,请教
数据加载中...
 
   



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

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