0

如果我有三个带整数的变量并且想找出哪个是最大的(不仅是最大整数),例如如果 a 是 3,b 是 4,c 是 5,我想知道 c 是最大的而不是给我一个 5。如何实现这一点,或者我应该使用

use List::Util

$d = max($a,$b,$c);
if($d == $a){}
elsif($d == $b){}
else{}
4

3 回答 3

1
  • 将值存储在数组中

  • 遍历数组中的每个索引(提示:使用0..#$arrayName构造)

  • 保持,在一个单独的 2 个变量中,$current_max_value$current_max_index

  • 当您找到一个大于 的值时$current_max_value,将其存储在$current_max_value并将当前索引存储在 $current_max_index

  • 循环结束后,您找到了最大元素的索引 ( $current_max_index)

于 2012-10-05T22:32:58.370 回答
1

通过使用单独的变量,你几乎可以做任何事情。假设您使用的是数组。

my @a = (3,4,5);

my $max_idx = 0;
for my $idx (1..$#a) {
   $max_idx = $idx
      if $a[$idx] > $a[$max_idx];
}

say $max_idx;
say $a[$max_idx];
于 2012-10-06T03:31:15.177 回答
1

使用PDL很容易,即使对于非常大的数据集也是如此。

#!/usr/bin/env perl

use strict;
use warnings;

use PDL;

my $pdl = pdl( 3,4,5 );
my (undef, $max, undef, $max_index) = $pdl->minmaximum;

print "Max: $max (at index $max_index)\n";
于 2012-10-06T16:32:51.387 回答