Perl 数列返回所有大于平均值的数字(0 位领导批示)

接上篇的另一道练习

题目要求:
写一个子程序,名为&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程序员的习惯..

随机显示的10篇日志

评论最多的10篇日志

浏览最多的10篇日志