perl 怎么计算数组中相同数字的个数
答案:5 悬赏:30 手机版
解决时间 2021-11-24 16:23
- 提问者网友:雪舞兮
- 2021-11-24 13:08
perl 怎么计算数组中相同数字的个数
最佳答案
- 五星知识达人网友:梦中风几里
- 2021-11-24 13:59
while(<>){
chomp;
unless(/^M/){
@tmp=split;
$count{$tmp[0]}++;##统计第一列数字个数
}
}
print "$count{1}
";##1的个数
你的代码没贴完 不知道到底是哪里。。追问大神 能不能再解释下每一行代码的意思,初学者谢了、、追答呃。。应该都是些基本的命令
建议你看下骆驼书追问上面程序貌似不行,或者是我不会用,能不能整个简单点的,谢啦!!!!追答你传一份data上来
chomp;
unless(/^M/){
@tmp=split;
$count{$tmp[0]}++;##统计第一列数字个数
}
}
print "$count{1}
";##1的个数
你的代码没贴完 不知道到底是哪里。。追问大神 能不能再解释下每一行代码的意思,初学者谢了、、追答呃。。应该都是些基本的命令
建议你看下骆驼书追问上面程序貌似不行,或者是我不会用,能不能整个简单点的,谢啦!!!!追答你传一份data上来
全部回答
- 1楼网友:像个废品
- 2021-11-24 16:57
while应该修改为if吧
- 2楼网友:青灯有味
- 2021-11-24 15:25
错在:
while ($Mr_A[$i][0]==1){
$count++;
}
因为 $Mr_A[$i][0] 如果是 = 1 的话, 那永远也是等於 1, 因为你在回路中没有改变过$Mr_A[$i][0] 的值, 所以就不可能跳出来了.
你可以这麼做的
foreach my $row ( 0.. $#Mr_A ) {
my %item;
foreach my $col ( @{$Mr_A{$row}} ) {
++$item{$col}
}
print "In Row $row: $/";
print "\tThere are $item{$_} of $_$/" foreach sort {$a<=>$b} keys %item;
print $/;
}
while ($Mr_A[$i][0]==1){
$count++;
}
因为 $Mr_A[$i][0] 如果是 = 1 的话, 那永远也是等於 1, 因为你在回路中没有改变过$Mr_A[$i][0] 的值, 所以就不可能跳出来了.
你可以这麼做的
foreach my $row ( 0.. $#Mr_A ) {
my %item;
foreach my $col ( @{$Mr_A{$row}} ) {
++$item{$col}
}
print "In Row $row: $/";
print "\tThere are $item{$_} of $_$/" foreach sort {$a<=>$b} keys %item;
print $/;
}
- 3楼网友:躲不过心动
- 2021-11-24 15:08
while ($Mr_A[$i][0]==1) 这个数字0有问题 相对于只是数了每行的第一个
正确的做法是 两层for循环或者map等
正确的做法是 两层for循环或者map等
- 4楼网友:酒安江南
- 2021-11-24 14:38
#!/usr/bin/perl
my @Mr_A = (
[1,2,3,4,0],
[2,3,4,0,1],
[3,2,4,4,0],
[0,2,3,1,4],
);
my %count_hash;
for(my $i=0; $i<=$#Mr_A;$i++){ #行循环
for(my $j=0; $j<=4; $j++) { #列循环
$count_hash{"column". $j . "_value".$Mr_A[$i][$j]} += 1;
}
}
foreach my $key (sort keys %count_hash) {
print "$key $count_hash{$key} ";
}
my @Mr_A = (
[1,2,3,4,0],
[2,3,4,0,1],
[3,2,4,4,0],
[0,2,3,1,4],
);
my %count_hash;
for(my $i=0; $i<=$#Mr_A;$i++){ #行循环
for(my $j=0; $j<=4; $j++) { #列循环
$count_hash{"column". $j . "_value".$Mr_A[$i][$j]} += 1;
}
}
foreach my $key (sort keys %count_hash) {
print "$key $count_hash{$key} ";
}
column0_value0 1
column0_value1 1
column0_value2 1
column0_value3 1
column1_value2 3
column1_value3 1
column2_value3 2
column2_value4 2
column3_value0 1
column3_value1 1
column3_value4 2
column4_value0 2
column4_value1 1
column4_value4 1
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯