用perl语言编写两个矩阵相加减的程序,矩阵的行列由用 户指定,矩阵的元素也由用户输入,分行列输出结 果,
时间: 2024-03-22 16:37:08 浏览: 130
好的,以下是Perl语言编写的两个矩阵相加减的程序,矩阵的行列由用户指定,矩阵的元素也由用户输入,分行列输出结果:
```perl
# 输入第一个矩阵
print "请输入第一个矩阵的行数:";
my $m1_rows = <STDIN>;
chomp($m1_rows);
print "请输入第一个矩阵的列数:";
my $m1_cols = <STDIN>;
chomp($m1_cols);
my @m1;
for (my $i = 0; $i < $m1_rows; $i++) {
print "请输入第一个矩阵第 " . ($i+1) . " 行的元素(以空格分隔):";
my $line = <STDIN>;
chomp($line);
my @row = split(/\s+/, $line);
push @m1, \@row;
}
# 输入第二个矩阵
print "请输入第二个矩阵的行数:";
my $m2_rows = <STDIN>;
chomp($m2_rows);
print "请输入第二个矩阵的列数:";
my $m2_cols = <STDIN>;
chomp($m2_cols);
my @m2;
for (my $i = 0; $i < $m2_rows; $i++) {
print "请输入第二个矩阵第 " . ($i+1) . " 行的元素(以空格分隔):";
my $line = <STDIN>;
chomp($line);
my @row = split(/\s+/, $line);
push @m2, \@row;
}
# 判断两个矩阵是否可以相加或相减
if ($m1_rows != $m2_rows || $m1_cols != $m2_cols) {
print "两个矩阵无法相加或相减!\n";
exit();
}
# 计算相加的结果
my @add;
for (my $i = 0; $i < $m1_rows; $i++) {
my @row;
for (my $j = 0; $j < $m1_cols; $j++) {
$row[$j] = $m1[$i][$j] + $m2[$i][$j];
}
push @add, \@row;
}
# 计算相减的结果
my @sub;
for (my $i = 0; $i < $m1_rows; $i++) {
my @row;
for (my $j = 0; $j < $m1_cols; $j++) {
$row[$j] = $m1[$i][$j] - $m2[$i][$j];
}
push @sub, \@row;
}
# 输出结果
print "相加的结果为:\n";
for (my $i = 0; $i < $m1_rows; $i++) {
for (my $j = 0; $j < $m1_cols; $j++) {
print $add[$i][$j] . " ";
}
print "\n";
}
print "相减的结果为:\n";
for (my $i = 0; $i < $m1_rows; $i++) {
for (my $j = 0; $j < $m1_cols; $j++) {
print $sub[$i][$j] . " ";
}
print "\n";
}
```
使用方法:
1. 通过命令行进入Perl环境;
2. 将上述代码复制粘贴到命令行中;
3. 按照程序提示输入矩阵的行列和元素;
4. 程序会输出相加和相减的结果。
希望能够帮到你,如有疑问可以继续提问。
阅读全文