【问题标题】:to compare each element of the array and subtract the larger number from the smaller one? or is there any possible way to do it比较数组的每个元素并从较小的数字中减去较大的数字?或者有什么可能的方法吗
【发布时间】:2017-04-13 05:55:35
【问题描述】:

我正在编写一个 perl 代码,它将数组 B 中的数字减去 A 即。 B-A 但问题是如果数组 B 元素更大,则无法减去,反之亦然。

      @dataset1= ("2", "1", "1", "1");
      @dataset2= ("3","3","2","0");
       print "dat1 @dataset1\n";
       print "dat2 @dataset2\n";


      for(my $i=0;$i<=$#dataset1;$i++){

       $minus=$dataset2[$i]-$dataset1[$i];
       print " $minus\n";

      }

输出是:

 dat1 2 1 1 1
 dat2 3 3 2 0
 this 1
 this 2
 this 1
 this -1

但我希望输出的方式是:

 dat1 2 1 1 1
 dat2 3 3 2 0
 this 1
 this 2
 this 1
 this 1

请提出一些建议。提前致谢。

【问题讨论】:

    标签: arrays perl for-loop if-statement


    【解决方案1】:

    你可以使用绝对值。

    $minus=abs($dataset2[$i]-$dataset1[$i]);
    

    【讨论】:

    • 如果我必须匹配两个数据集中的两个数字,如果两个数字都是 0,如何跳过该索引。我使用的代码是 if ($count_f_dataset2[$i]||$count_f_dataset1 [$i]==0) { 下一个; } 但这似乎不起作用。
    • 什么是 $count_f_dataset2?
    • Count_f_dataset1 是一个数组 is this-> AAAAAAA 0 AAAAAAT 0 AAAAAAG 0 AAAAAAC 1 和 count_f_dataset2 是另一个数组 AAAAAAA 0 AAAAAAT 3 AAAAAAG 5 AAAAAAC 0 所以如果字符串 AAAAAAA 值在两个数组中都是 0应该跳过那个字符串。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-20
    • 1970-01-01
    • 2020-05-18
    • 1970-01-01
    • 1970-01-01
    • 2016-04-27
    • 1970-01-01
    相关资源
    最近更新 更多