perl编写两个矩阵相加减的程序,矩阵的行列及矩阵的元素均由用户指定,在屏幕上分行列输出结果(矩阵的元素为整型数据)
时间: 2024-12-27 12:31:37 浏览: 4
在Perl中编写一个简单的矩阵相加减程序,你可以按照以下步骤操作:
```perl
#!/usr/bin/perl
use strict;
use warnings;
# 请求用户输入矩阵的行数和列数
print "请输入矩阵的行数: ";
my $rows = <STDIN>;
chomp $rows;
print "请输入矩阵的列数: ";
my $cols = <STDIN>;
chomp $cols;
# 初始化空矩阵
my @matrix1 = ();
my @matrix2 = ();
# 遍历行和列,请求并存储用户输入的矩阵元素
for (my $i = 0; $i < $rows; $i++) {
for (my $j = 0; $j < $cols; $j++) {
print "请输入第$i行第$j列的元素(第一矩阵): ";
my $element = <STDIN>;
chomp $element;
push @matrix1, $element;
print "请输入第$i行第$j列的元素(第二矩阵): ";
$element = <STDIN>;
chomp $element;
push @matrix2, $element;
}
}
# 矩阵相加
my @sum_matrix = map { $_[0] + $_[1] } transpose(@matrix1), @matrix2;
# 矩阵相减
my @diff_matrix = map { $_[0] - $_[1] } transpose(@matrix1), @matrix2;
# 输出结果矩阵
print "\n矩阵相加:\n";
for (my $i = 0; $i < $rows; $i++) {
for (my $j = 0; $j < $cols; $j++) {
print "$sum_matrix[$i][$j]\t";
}
print "\n";
}
print "\n矩阵相减:\n";
for (my $i = 0; $i < $rows; $i++) {
for (my $j = 0; $j < $cols; $j++) {
print "$diff_matrix[$i][$j]\t";
}
print "\n";
}
sub transpose {
return map { @$_ } @_;
}
```
当你运行这个程序时,它会提示你输入两个矩阵的元素,然后计算它们的和与差,并将结果按行分隔显示在屏幕上。
阅读全文