加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

利用perl计算列表中高于平均值的数字

发布时间:2020-12-16 00:23:53 所属栏目:大数据 来源:网络整理
导读:?写一个名为above_average的子程序,当给定一个包含多个数字的列表时,返回其中大于这些平均值的数。 sub?sum{? ????????my?$sum;???????????????????????????????? #定义私有变量 ? ????????foreach(@_){? ????????????????$sum?+=?$_;? ????????}? $sum;??

?写一个名为&above_average的子程序,当给定一个包含多个数字的列表时,返回其中大于这些平均值的数。

 
 
  1. sub?sum{?
  2. ????????my?$sum;????????????????????????????????#定义私有变量?
  3. ????????foreach(@_){?
  4. ????????????????$sum?+=?$_;?
  5. ????????}?
  6. $sum;???????????????????????????????????????????#返回累加和的返回值?
  7. }?
  8. ?
  9. ?
  10. sub?average{?
  11. ????????if(@_?==?0)?{return}????????????????????#如果列表为空,不进行计算(最后一条语句可以不写分号,也就是return后面的分号可以省略)?
  12. ????????my?$ave;?
  13. ????????my?$len?=?@_;?
  14. ????????$ave?=?&sum(@_)/$len;???????????????????#计算平均值并返回?
  15. ?
  16. }?
  17. ?
  18. ?
  19. sub?above_average{?
  20. ????????my?$average?=?&average(@_);?
  21. ????????my?@list;?
  22. ?
  23. ????????foreach?(@_){?
  24. ????????????????if($average<$_){?
  25. ????????????????push?@list?,??$_;???????????????#如果高于平均值,入list?
  26. ????????????????}?
  27. ????????}?
  28. @list;??????????????????????????????????????????#返回list?
  29. }?
  30. ?
  31. ?
  32. my?@fred?=?above_average(1..10);?
  33. print?"@fred?is?@fredn";?
  34. print?"(shoule?be?6?7?8?9?10)n";?
  35. ?
  36. my?@barney?=?above_average(100,1..10);?
  37. print?"@barney?is?@barneyn";?
  38. print?"(shoule?be?just?100)n";?

运行结果:

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读