标题:大家来小测一下 真的郁闷
只看楼主
changshiop
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2008-11-7
 问题点数:0 回复次数:4 
大家来小测一下 真的郁闷
#include<stdio.h>
int Mid(int array[], int Length);
int main(void)
{
    int k;
    int array[] = {5,2,3,8,6};
    k = Mid(array, 5);
    printf("%d", k);
    return 0;
}
int Mid(int array[], int Length)
{
    int i, j, k, number;
    k = 0;
    for(i = 0; i < Length; i++);
    {
        for(j = 0; j < Length; j++)
        {
            if(array[i] > array[j])
            {
                k = k + 1;
            }
        }
        if(k == (Length - 1) / 2)
        {
            number = array[i];
        }
    }
    return number;
}

郁闷啊~~返回值怎么0啊???我想求中位数的,请斑竹帮忙~
搜索更多相关主题的帖子: 中位数 
2008-12-08 10:21
succubus
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:4
帖 子:635
专家分:1080
注 册:2007-10-7
得分:0 
k不满足这个条件,
if(k == (Length - 1) / 2)
{
    number = array[i];
}
所以返回的是初始的0

[url=http:///view/aDU1]/image/aDU1.gif" border="0" />[/url]
2008-12-08 11:01
changshiop
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2008-11-7
得分:0 
回复 第2楼 succubus 的帖子
那我的问题出在哪里了啊?分析觉得K的值应该是2啊~?谢谢
2008-12-08 11:09
succubus
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:4
帖 子:635
专家分:1080
注 册:2007-10-7
得分:0 
把k = 0这句放在第一层循环里

[url=http:///view/aDU1]/image/aDU1.gif" border="0" />[/url]
2008-12-08 11:20
京广铁路
Rank: 1
等 级:新手上路
威 望:1
帖 子:119
专家分:0
注 册:2008-11-3
得分:0 
楼主首先要把数组元素重新排序
2008-12-08 14:12



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




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

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