给定两个矩阵A和B,计算它们的矩阵和AB。 注意:只有规模匹配的矩阵才可以求和。即若A有Ra行、Ca列,B有Rb行、Cb列,则只有Ra=Rb且Ca=Cb时,A和B才能求矩阵和。如样例所示。 输入格式: 输入先后给出两个矩阵A和B。 对于每个矩阵,首先在一行中给出其行数R和列数C,随后R行,每行给出C个整数,以1个空格分隔,且行首尾没有多余的空格。 输入保证两个矩阵的R和C都是正数,并且所有整数的绝对值不超过20。 输出格式: 若输入的两个矩阵的规模是匹配的,则按照输入的格式输出矩阵和AB,否则输出Error:Ra!=Rb or Ca!=Cb。c语言
时间: 2024-02-11 19:07:27 浏览: 51
下面是一份 C 语言代码实现,可以参考一下:
```c
#include <stdio.h>
int main()
{
// 读入矩阵A
int ra, ca;
scanf("%d%d", &ra, &ca);
int a[ra][ca];
for (int i = 0; i < ra; i++) {
for (int j = 0; j < ca; j++) {
scanf("%d", &a[i][j]);
}
}
// 读入矩阵B
int rb, cb;
scanf("%d%d", &rb, &cb);
int b[rb][cb];
for (int i = 0; i < rb; i++) {
for (int j = 0; j < cb; j++) {
scanf("%d", &b[i][j]);
}
}
// 判断矩阵规模是否匹配
if (ra != rb || ca != cb) {
printf("Error:Ra!=Rb or Ca!=Cb");
} else {
// 计算矩阵和
int c[ra][ca];
for (int i = 0; i < ra; i++) {
for (int j = 0; j < ca; j++) {
c[i][j] = a[i][j] + b[i][j];
}
}
// 输出矩阵和
printf("%d %d\n", ra, ca);
for (int i = 0; i < ra; i++) {
for (int j = 0; j < ca; j++) {
printf("%d", c[i][j]);
if (j != ca - 1) {
printf(" ");
}
}
printf("\n");
}
}
return 0;
}
```
输入样例:
```
2 2
1 2
3 4
2 2
5 6
7 8
```
输出样例:
```
2 2
6 8
10 12
```
阅读全文