| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5131 人关注过本帖
标题:求自定类型元素序列的中位数(PAT)
取消只看楼主 加入收藏
kindol
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2016-3-19
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:1 
求自定类型元素序列的中位数(PAT)
本题要求实现一个函数,求N个集合元素A[]的中位数,即序列中第⌈N/2⌉\lceil N/2 \rceil⌈N/2⌉大的元素。其中集合元素的类型为自定义的ElementType。

函数接口定义:
ElementType Median( ElementType A[], int N );

其中给定集合元素存放在数组A[]中,正整数N是数组元素个数。该函数须返回N个A[]元素的中位数,其值也必须是ElementType类型。

裁判测试程序样例:
#include <stdio.h>

#define MAXN 10
typedef float ElementType;

ElementType Median( ElementType A[], int N );

int main ()
{
    ElementType A[MAXN];
    int N, i;

    scanf("%d", &N);
    for ( i=0; i<N; i++ )
        scanf("%f", &A[i]);
    printf("%.2f\n", Median(A, N));

    return 0;
}

/* 你的代码将被嵌在这里 */

输入样例:
3
12.3 34 -5

输出样例:
12.30

我的代码:
ElementType Median(ElementType A[], int N) {
    ElementType temp;
    for (int i = 0; i < N - 1; i++) {
        for (int j = i + 1; j < N; j++) {
            if (A[i] > A[j]) { temp = A[j]; A[j] = A[i]; A[i] = temp; }
            }
        }
    if (N % 2) return A[(N + 1) / 2 - 1];
        return (A[N / 2 - 1] + A[N / 2]) / 2;
}
这是一道PAT的题目,不知道问题出在哪里,提交上去后显示部分结果正确,求大神指导:
测试结果:
    测试点      结果      得分/满分  用时(ms)  内存(MB)
   测试点1    答案正确      13/13    1            1   
   测试点2    答案错误      0/3      2            1   
   测试点3    答案正确      1/1      2            1   
   测试点4    答案正确      3/3      7            1   
   测试点5    答案错误      0/3      1            1   
   测试点6    运行超时      0/2      0            0
搜索更多相关主题的帖子: include 中位数 元素 接口 
2016-04-16 14:50
kindol
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2016-3-19
收藏
得分:0 
回复 2楼 rjsp
hh果然是大神,是我最后return那里的问题,另外全排序也超时了,灰常感谢
2016-04-19 20:42
快速回复:求自定类型元素序列的中位数(PAT)
数据加载中...
 
   



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

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