| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 702 人关注过本帖
标题:求五个数的众数
只看楼主 加入收藏
小小程序猿
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:1
帖 子:755
专家分:2785
注 册:2013-7-18
结帖率:100%
收藏
已结贴  问题点数:30 回复次数:9 
求五个数的众数
#include<stdio.h>
int main()
{
    int i,j,maxsum;
    int a[5];
    int sum[5];

    for(i=0;i<5;i++)
    {
        sum[i]=0;
        printf("请输入第%d个数  ",i+1);
        scanf("%d",&a[i]);
    }

    for(i=0;i<5;i++)
    {
        for(j=i;j<5;j++)
        {
            if(a[i]==a[j])
            {
            sum[i]=sum[i]+1;
            }
        }   
    }

    maxsum=0;
    for(i=0;i<5;i++)
    {
        if(sum[i]>maxsum)
        {
            maxsum=sum[i];
        }
    }

    for( i=0;i<5;i++)
    {
        if(maxsum==sum[i])
        {
            printf("众数为%d\n",a[i]);
        }
    }

    printf("重数为%d\n",maxsum);
    return 0;
}

问题已经解决,谢谢各位!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

[ 本帖最后由 小小程序猿 于 2013-10-16 21:30 编辑 ]
搜索更多相关主题的帖子: include 
2013-10-15 22:01
yuccn
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:何方
等 级:版主
威 望:167
帖 子:6815
专家分:42393
注 册:2010-12-16
收藏
得分:1 
五个数的众数? 众数是什么乙

我行我乐
公众号:逻辑客栈
我的博客:
https://blog.yuccn. net
2013-10-15 22:06
小小程序猿
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:1
帖 子:755
专家分:2785
注 册:2013-7-18
收藏
得分:0 
  给定含有 n 个元素的多重集合 S,每个元素在 S 中出现的次数称为该元素的重数。多重集 S 中重数最大的元素称为众数。

孤独与寂寞是催化一个人迅速成长的良药,没有之一
2013-10-15 22:09
zhaogay
Rank: 7Rank: 7Rank: 7
来 自:宫
等 级:黑侠
帖 子:151
专家分:586
注 册:2013-10-10
收藏
得分:12 
程序代码:
#include<stdio.h>

 int main()

 {
     int i,j,maxsum;
     int a[5];
     int sum[5];
     for(i=0;i<5;i++)
     {
         sum[i]=0;
         printf("请输入第%d个数  ",i+1);
         scanf("%d",&a[i]);
     }
     for(i=0;i<5;i++)
     {
         for(j=i;j<5;j++)//此处分号拿掉
         {
             if(a[i]==a[j])
             {
             sum[i]=sum[i]+1;
             }
         }  
     }
     maxsum=0;
     for(i=0;i<5;i++)
     {
         if(sum[i]>maxsum)
         {
             maxsum=sum[i];
         }
     }
     for( i=0;i<5;i++)
     {
         if(maxsum==sum[i])
         {
             printf("众数为%d\n",a[i]);
         }
     }
     printf("重数为%d\n",maxsum);
     return 0;

 }

好好学习,天天想上
2013-10-15 22:36
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:1 
一组数据中出现次数最多的数值,叫众数,有时众数在一组数中有好几个。用M表示。 简单的说,就是一组数据中占比例最多的那个数。
 例:[鸡、鸭、鱼、鱼、鸡、鱼]的众数是鱼。
2013-10-16 09:02
qunxingw
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:贵宾
威 望:24
帖 子:1676
专家分:7295
注 册:2011-6-30
收藏
得分:1 
原来如此

[ 本帖最后由 qunxingw 于 2013-10-16 09:35 编辑 ]

www.qunxingw.wang
2013-10-16 09:20
在这里爬起
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:43
专家分:113
注 册:2013-8-9
收藏
得分:3 
分号的问题,以后调试可以分步进行,那样更好找出错误
2013-10-16 11:02
liufashuai
Rank: 9Rank: 9Rank: 9
来 自:冥界-魔域-魂殿
等 级:蜘蛛侠
威 望:1
帖 子:370
专家分:1374
注 册:2012-6-22
收藏
得分:12 
这个问题。。。。。
1,是4楼指出的地方,把分号去掉
2,你这样循环不是重复了,对于求对数,没必要,你要的只是一个结果
程序代码:
#include<stdio.h>
#define N 5
int  main()
{
     int i,j,k,maxnum,index;
     int a[N];
     int result[N][2]={0};
    
     for(i=0;i<N;i++)
     {
         printf("请输入第%d个数  ",i+1);
         scanf("%d",&a[i]);
     }
     j = 0;
     k = 0;
     for(i = 0 ; i < N ;i ++)
     {
          for(j = 0 ; j <= k && result[j][0] != a[i]; j ++)
                 ;
         if(j > k)
         {
               result[k][0] = a[i];     
              result[k][1] = 1;
              k ++;
         }
         else
         {
             result[j][1] ++;
         }
     }
    
     maxnum = 0;
     index = 0;
     for(j = 0 ; j <= k ;j ++)
         if(result[j][1] > maxnum)
          {
               maxnum = result[j][1];
                index = j;
          }
      printf("\n众数 :%d 出现:%d\n",result[index][0],result[index][1]) ;   
    return 0;
} 



有一种落差是,你配不上自己的野心,也辜负了所受的苦难。






2013-10-16 11:57
小小程序猿
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:1
帖 子:755
专家分:2785
注 册:2013-7-18
收藏
得分:0 
以下是引用liufashuai在2013-10-16 11:57:45的发言:

这个问题。。。。。
1,是4楼指出的地方,把分号去掉
2,你这样循环不是重复了,对于求对数,没必要,你要的只是一个结果#include<stdio.h>
#define N 5
int  main()
{
     int i,j,k,maxnum,index;
     int a[N];
     int result[N][2]={0};
   
     for(i=0;i<N;i++)
     {
         printf("请输入第%d个数  ",i+1);
         scanf("%d",&a);
     }
     j = 0;
     k = 0;
     for(i = 0 ; i < N ;i ++)
     {
          for(j = 0 ; j <= k && result[j][0] != a; j ++)
                 ;
         if(j > k)
         {
               result[k][0] = a;     
              result[k][1] = 1;
              k ++;
         }
         else
         {
             result[j][1] ++;
         }
     }
   
     maxnum = 0;
     index = 0;
     for(j = 0 ; j <= k ;j ++)
         if(result[j][1] > maxnum)
          {
               maxnum = result[j][1];
                index = j;
          }
      printf("\n众数 :%d 出现:%d\n",result[0],result[1]) ;   
    return 0;
}



就是因为调不对了,我才把循环分开的

许久不用 C 了,有些生疏,丢银了。。。。。。。。。

孤独与寂寞是催化一个人迅速成长的良药,没有之一
2013-10-16 21:29
Enan
Rank: 2
等 级:论坛游民
帖 子:20
专家分:21
注 册:2013-9-28
收藏
得分:0 
回复 3楼 小小程序猿
原来这就是众数,谢啦!
2013-10-16 22:57
快速回复:求五个数的众数
数据加载中...
 
   



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

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