PERL 问题,数组内1 2 3 4 5 6 7 8 9 10,如何打印出数组内元素 大于平均值的数字。
my@sum=&above_average(1..10);my$sun=@sum;subabove_average{my$s=0;foreach(@_){$s+=$_;}...
my @sum=&above_average(1..10);
my $sun=@sum;
sub above_average{
my $s=0;
foreach(@_){
$s += $_;
}
$s=$s/10;
}
foreach$nu(@sum){
if($sun<$nu){
printf"@_";
}
}
求解答我那里弄错了。正确的发上来 谢谢啦 展开
my $sun=@sum;
sub above_average{
my $s=0;
foreach(@_){
$s += $_;
}
$s=$s/10;
}
foreach$nu(@sum){
if($sun<$nu){
printf"@_";
}
}
求解答我那里弄错了。正确的发上来 谢谢啦 展开
展开全部
首先, 错在 $s=$s/10; 下一行多了个 } , 这样整个程序就崩溃了. 而然, 我实在也看不清你的逻辑是想怎样安排, 所以就不一一啦. 给你的建议是:
1. 用一些比较有意义的变数名称
2. 善用 tab 和 space, 如果你的程序写得较有层次感, 你自己都能看出错在那里了.
最後写一个给你参巧一下, 希望有帮助啦!
@result = &above_average ( 1..10 ) ;
print "These numbers are above average: @result";
sub above_average {
@numbers = @_ ;
$total += $_ foreach @numbers;
$avg = $total / ( $#numbers + 1 ) ;
print "Average is $avg$/";
foreach $num ( @numbers ) {
push @collected, $num if $num > $avg;
}
return @collected
}
1. 用一些比较有意义的变数名称
2. 善用 tab 和 space, 如果你的程序写得较有层次感, 你自己都能看出错在那里了.
最後写一个给你参巧一下, 希望有帮助啦!
@result = &above_average ( 1..10 ) ;
print "These numbers are above average: @result";
sub above_average {
@numbers = @_ ;
$total += $_ foreach @numbers;
$avg = $total / ( $#numbers + 1 ) ;
print "Average is $avg$/";
foreach $num ( @numbers ) {
push @collected, $num if $num > $avg;
}
return @collected
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询