Perl 数列返回所有大于平均值的数字(0 位领导批示)
- 2008-06-2
- 分类:Perl
- 作者:银子
- 2,975 位领导视察
接上篇的另一道练习
题目要求:
写一个子程序,名为&above_average,将一列数字作为其参数,返回所有大于平均值的数字。
#求平均数
sub average_num
{
$total;
foreach $tot (@_)
{
$total += $tot;
}
return int($total/scalar(@_));
}
#返回大于平均数的数
sub above_average
{
my $average_num = &average_num(@_);
my @big_average;
foreach $ave (@_)
{
if($ave > $average_num)
{
push(@big_average,$ave);
}
}
return @big_average;
}
my @fred = (1..60);
@array = above_average(@fred);
foreach $view (@array)
{
print $view."\n";
}
与php的很大不同是子程序参数的使用.@_为传递的默认数组.
NOTE:一般子程序都不用标明返回值.也就是不用写明return..原因是perl语言的发明者不想多打七个字母.-_-!!! 我这里标明也是作为一个php程序员的习惯..















