2012-10-05 187 views
0

如果我有三個整數變量並且想要找出哪一個是最大的一個(不僅是最大整數),例如,如果a是3,b是4並且c是5 ,我想知道c是最大的而不是給我返回一個5。如何做到這一點,或者我應該在陣列中使用perl找到最大值並記錄哪一個是它

use List::Util 

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

回答

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]; 
1
  • 存儲該數組

  • 循環在全球各項指標(提示:使用0..#$arrayName結構)

  • 保持,在單獨的2個變量中,$current_max_value$current_max_index

  • 當您找到值比$current_max_value時,將其存儲在$current_max_value並保存當前指數$current_max_index

  • 循環完成時,你發現你的最大元素($current_max_index

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"; 
相關問題