perl – 在3中找到最多的数字
发布时间:2020-12-16 06:11:46 所属栏目:大数据 来源:网络整理
导读:我正在尝试编写一个脚本来查找3个数字中最大的数字,并通过命令行参数传递它们 我只是想知道我在这段代码中写的错误是什么,谢谢你的帮助. sub maximum($) { ($num1) = @_ ; ($num2) = @_ ; ($num2) = @_ ; $max = $num1; if ($num2 $num1) { $max = $num2; }
我正在尝试编写一个脚本来查找3个数字中最大的数字,并通过命令行参数传递它们
我只是想知道我在这段代码中写的错误是什么,谢谢你的帮助. sub maximum($) { ($num1) = @_ ; ($num2) = @_ ; ($num2) = @_ ; $max = $num1; if ($num2 > $num1) { $max = $num2; } elsif ($num3 > $max ) { $max = $num3; } } $n1 = $ARGV[0]; chomp($n1); $n2 = $ARGV[1]; chomp($n2); $n3 = $ARGV[2]; chomp($n3); maximum($n1,$n2,$n3); 解决方法
你的最大功能有缺陷:
>如果第一个数字大于第二个数字,则只尝试第三个数字. 下面是一些代码,有五种不同的函数参数检索方法: sub max1 { my $num1 = $_[0]; my $num2 = $_[1]; my $num3 = $_[2]; my $max = $num1; $max = $num2 if $num2 > $max; $max = $num3 if $num3 > $max; return $max; } sub max2 { my $num1 = shift; my $num2 = shift; my $num3 = shift; my $max = $num1; $max = $num2 if $num2 > $max; $max = $num3 if $num3 > $max; return $max; } sub max3 { my ($num1,$num2,$num3) = @_; my $max = $num1; $max = $num2 if $num2 > $max; $max = $num3 if $num3 > $max; return $max; } # Works for any number of arguments. sub max4 { my $max = shift; foreach my $foo (@_) { $max = $foo if $max < $foo; } return $max; } # Works for any number of arguments. use List::Util qw( max ); my $n1 = $ARGV[0]; my $n2 = $ARGV[1]; my $n3 = $ARGV[2]; printf "%dn",max1($n1,$n3); printf "%dn",max2($n1,max3($n1,max4($n1,max($n1,$n3); # Even simpler: printf "%dn",max1 @ARGV; printf "%dn",max2 @ARGV; printf "%dn",max3 @ARGV; printf "%dn",max4 @ARGV; printf "%dn",max @ARGV; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |