Perlについての質問箱 17箱目
レス数が950を超えています。1000を超えると書き込みができなくなります。
0969デフォルトの名無しさん
2005/07/19(火) 20:36:17探すよりも考えましょう。
my %data = ('A' => 5, 'B' => 5, 'C' => 3); # (名前 => ポイント)のデータ
my $rank = 1; # 順位
my $last_pt = 0; # 直前のポイント
# %dataのvalue(書き込み数)で降順ソートしてforeachで回す
foreach my $name (sort { $data{$b} <=> $data{$a}} keys %data) {
my $pt = $data{$name}; # 今回のポイントへのショートカット
$rank++ if ($last_pt > $pt); # 順位の更新
print $rank, "\t", $name, "\t", $pt, "\n"; # ランキング表示
$last_pt = $pt; # 直前のポイント更新
}
レス数が950を超えています。1000を超えると書き込みができなくなります。