标题:求数组中的中位数,大家看看代码哪里出错了
取消只看楼主
吕家三少
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2012-12-1
结帖率:100%
已结贴  问题点数:20 回复次数:1 
求数组中的中位数,大家看看代码哪里出错了
题目:编程求数组各元素的中位数,要求如下:
(1)void array_input(double array[], int n)的功能是:输入double型数组array的各元素值,参数n是数组元素的个数;
(2)void select_sort(double array[], int n)函数实现从小到大选择排序功能,参数n是数组元素的个数;
(3)double median(double array[], int n)的功能是:求出有序数组array各元素的中位数,参数n是数组元素的个数;
(说明:中位数就是在已排序的各元素中,处于中间位置的元素值:当数组元素个数为奇数时,处于中间位置的元素只有一个,中位数就是该元素的值;当数组元素个数为偶数时,处于中间位置的元素只有两个,中位数就是这两个元素的简单算术平均数)
(4)主函数的功能:定义一个是长度为8的double型数组,通过调用array_input()输入各元素的值,再调用select_sort()对数组各元素排序,之后调用median()得到中位数,最后输出结果;
代码:
#include<stdio.h>
int main()
{
    void array_input(double array[], int n);
    void select_sort(double array[], int n);
    double median(double array[], int n);
    double d[8],a;
    int n=8;
    array_input(d,8);
    select_sort(d,8);
    a=median(d,8);
    printf("数组d各元素的中位数:%f",a);
    return 0;
}
void array_input(double array[], int n)
{
    int i;
    printf("请输入double型数组的个元素:");
    for(i=0;i<n;i++)
    {
        scanf("%f",&array[i]);
    }
}
void select_sort(double array[], int n)
{
    double t;
    int i;
    for(i=0;i<n;i++)
    {
        if(array[i]>array[i+1])
            t=array[i];
            array[i]=array[i+1];
            array[i+1]=t;
    }
}
double median(double array[], int n)
{
    double x,y;
    int i;
    if(n%2==0)
    {
        x=array[i/2]+array[i/2+1];
        y=x/2;
    }
    else
       y=array[(i+1)/2];
    return(y);
}




大家帮帮忙啊,看看哪里出错了。。。
搜索更多相关主题的帖子: double median 中位数 元素 
2012-12-01 21:05
吕家三少
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2012-12-1
得分:0 
回复 5楼 神龙赖了
怎么调式不正确的啊。。。。。调式出的结果出现很多的负数的?再次求救高手啊
2012-12-03 19:01



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




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

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