免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3218 | 回复: 1
打印 上一主题 下一主题

求中值(median),帮忙看看哪里错了? [复制链接]

论坛徽章:
1
操作系统版块每日发帖之星
日期:2015-10-08 06:20:00
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2015-09-21 21:23 |只看该作者 |倒序浏览
本帖最后由 56836430 于 2015-09-21 21:27 编辑

这是 input, 想算出每行(从第二列到最后一列)的(median)中值,然后写在末尾一列。但是怎么都不对,请大家帮忙看看

OG001095          2       3       4       2       3       5       4       4     22      3       4       2       5       5       5       7       5       7   2       4       6       6       5       9       4       3       4       3   4       4       3       5       2       8       3       4       13      5
OG001096          2       8       4       3       3       3       6       3     13      4       3       2       5       3       5       4       4       6   3       10      3       11      9       20      3       4       5       2   3       3       3       6       4       6       3       4       2       4
OG001097          2       3       6       3       1       4       2       4    6       4       5       8       4       8       9       5       4       8    9       3       6       1       7       17      4       5       2       7     5       3       7       2       4       0       8       6       2       5
OG001098          6       10      1       4       6       9       1       6      4       3       6       3       1       7       5       4       8       6        5       8       1       3       3       10      8       4       4       7        5       9       4       3       5       2       6       4       1       7




#!/usr/bin/perl -w
use strict;

my $file=shift;

open FD,$file;

while(my $content=<FD>)
{
    my @vals = sort {$a <=> $b} $content[1..38]; #提示这一行有错误,后面可能也有错误,但是没显示
    my $len = @vals;
    if($len%2) #odd?
    {
        print "$content\t $vals[int($len/2)]";
    }
    else #even
    {
        print "$content\t ($vals[int($len/2)-1] + $vals[int($len/2)])/2";
    }
}


close FD;

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
2 [报告]
发表于 2015-09-21 21:40 |只看该作者
回复 1# 56836430


    $content 你要先 split 呀
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP