标题:定义一个数组,输入最多二十条数据,输出中位数和众数
只看楼主
ych106516361
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2017-3-14
结帖率:100%
已结贴  问题点数:9 回复次数:3 
定义一个数组,输入最多二十条数据,输出中位数和众数
定义一个数组,输入最多二十条数据,输出中位数和众数

冒泡我百度看懂了,可是数组我学的不太好,希望给点指导

搜索更多相关主题的帖子: 百度 中位数 
2017-04-03 22:40
江岷居士
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2017-4-4
得分:0 
哦、
2017-04-04 00:19
Alien_Lee
Rank: 8Rank: 8
来 自:Linux帝国
等 级:蝙蝠侠
威 望:7
帖 子:149
专家分:739
注 册:2016-7-19
得分:7 
程序代码:
#define N 20
int a[N];
int compare(const int *i, const int *j)
{
    return *(int*)i - *(int*)j;
}
void Cla(int *a,int n,int *mode, double *median)
{
    int b[N];
    int i,max,maxi;
    qsort(a, n, sizeof(int), compare);
    if (n % 2 == 0) *median = ((double)a[n / 2] + a[n / 2 + 1]) / 2;
    else {
        *median = (double)a[n / 2 + 1];
    }
    b[0] = 1;
    for (i = 1;i < n;i++) {
        if (a[i] == a[i - 1]) {
            b[i] =b[i-1]+1;
        }
        else
            b[i] = 1;
    }

    max = b[0];maxi = 0;
    for (i = 1;i < n;i++) {
        if (b[i] >= max) {
            max = b[i];
            maxi = i; 
        }
    }
    *mode = a[maxi];
   
}
当然这个程序还是有一些bug的,比如说众数,这个程序只能输出一个众数,当一个数列中两个元素出现相同次数的时候,只能得到一个。还有就是这个函数已经修改了原来数组的顺序。使用的时候要先手动备份数组。
但是大概思路是这样,没有调试,难免有一些小问题,但是思路是这样。凑合着看吧。


[此贴子已经被作者于2017-4-4 17:12编辑过]


  DEBUG的过程就是进步的过程,每一个小错误都是大问题!...
2017-04-04 16:59
大秦嬴
Rank: 2
等 级:论坛游民
威 望:1
帖 子:31
专家分:31
注 册:2016-11-30
得分:2 
/*只有一个中位数
  用的是冒泡排序*/
#include<stdio.h>
int main()
{
    float a[20],t;
    int i,j,n;
    scanf("%d",&n);
    for(i=0;i<n;i++)
        scanf("%f",&a[i]);
    for(i=0;i<n;i++)
        for(j=0;j<i;j++)
            if(a[i]>a[j])
            {
                t=a[i];
                a[i]=a[j];
                a[j]=t;
            }
   i=n/2-1;
   if(n%2!=0)
        printf("%f\n",a[i]);
   else
        printf("%f\n",(a[i]+a[i+1])/2.0);
   return 0;
}
     
2017-04-05 18:58



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-475768-1-1.html




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

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