用c语言 给定两个矩阵 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。 输入样例 1: 2 3 1 2 3 4 5 6 2 3 1 1 1 2 2 2 输出样例 1: 2 3 4 6 7 8 输入样例 2: 2 4 1 2 3 4 5 6 7 8 3 3 1 1 1 2 2 2 3 3 3 输出样例 2: Error:Ra!=Rb or Ca!=Cb
时间: 2024-01-05 10:05:19 浏览: 114
以下是用 C 语言实现的矩阵求和代码:
```c
#include <stdio.h>
int main()
{
int rowA, colA, rowB, colB;
scanf("%d%d", &rowA, &colA);
int matrixA[rowA][colA];
for (int i = 0; i < rowA; i++)
{
for (int j = 0; j < colA; j++)
{
scanf("%d", &matrixA[i][j]);
}
}
scanf("%d%d", &rowB, &colB);
int matrixB[rowB][colB];
for (int i = 0; i < rowB; i++)
{
for (int j = 0; j < colB; j++)
{
scanf("%d", &matrixB[i][j]);
}
}
if (colA != rowB)
{
printf("Error:Ra!=Rb or Ca!=Cb");
return 0;
}
int matrixC[rowA][colB];
for (int i = 0; i < rowA; i++)
{
for (int j = 0; j < colB; j++)
{
matrixC[i][j] = 0;
for (int k = 0; k < colA; k++)
{
matrixC[i][j] += matrixA[i][k] * matrixB[k][j];
}
}
}
printf("%d %d\n", rowA, colB);
for (int i = 0; i < rowA; i++)
{
for (int j = 0; j < colB; j++)
{
printf("%d", matrixC[i][j]);
if (j != colB - 1)
{
printf(" ");
}
}
printf("\n");
}
return 0;
}
```
输入格式为先输入矩阵 A 的行数和列数,然后输入每一个元素的值;接着输入矩阵 B 的行数和列数,再输入每一个元素的值。接着,判断两个矩阵的行列是否匹配,如果不匹配则输出错误信息。如果匹配,则用三个 for 循环遍历矩阵 A 和矩阵 B 并求和,最后输出矩阵 C。
阅读全文