计算m×n阶矩阵A和s×n阶矩阵B之积
时间: 2024-05-06 16:07:27 浏览: 13
两个矩阵相乘需要满足第一个矩阵的列数等于第二个矩阵的行数。因此,m×n阶矩阵A和s×n阶矩阵B可以相乘,结果为一个m×s阶的矩阵C。具体计算方法如下:
C(i,j) = Σ(A(i,k) × B(k,j)),其中k=1,2,...,n,i=1,2,...,m,j=1,2,...,s
其中C(i,j)表示矩阵C中第i行第j列元素的值。
相关问题
计算m×n阶矩阵A和s×n阶矩阵B之积C语言
以下是一个计算m×n阶矩阵A和s×n阶矩阵B之积C的C语言程序:
```
#include <stdio.h>
int main() {
int m, n, s;
printf("请输入矩阵A的行数m:");
scanf("%d", &m);
printf("请输入矩阵A的列数n:");
scanf("%d", &n);
printf("请输入矩阵B的行数s:");
scanf("%d", &s);
int A[m][n], B[s][n], C[m][s];
int i, j, k;
// 输入矩阵A
printf("请输入矩阵A:\n");
for (i = 0; i < m; i++) {
for (j = 0; j < n; j++) {
scanf("%d", &A[i][j]);
}
}
// 输入矩阵B
printf("请输入矩阵B:\n");
for (i = 0; i < s; i++) {
for (j = 0; j < n; j++) {
scanf("%d", &B[i][j]);
}
}
// 计算矩阵C
for (i = 0; i < m; i++) {
for (j = 0; j < s; j++) {
C[i][j] = 0;
for (k = 0; k < n; k++) {
C[i][j] += A[i][k] * B[j][k];
}
}
}
// 输出矩阵C
printf("矩阵C为:\n");
for (i = 0; i < m; i++) {
for (j = 0; j < s; j++) {
printf("%d ", C[i][j]);
}
printf("\n");
}
return 0;
}
```
该程序要求用户输入矩阵A和B的行列数以及矩阵A和B的元素,然后计算出矩阵C并输出。
用c++ 编程计算m×s阶矩阵A和s×n阶矩阵B之积
好的,下面是 C++ 代码实现:
```cpp
#include <iostream>
using namespace std;
const int MAXN = 1005; // 矩阵最大行列数
int A[MAXN][MAXN], B[MAXN][MAXN], C[MAXN][MAXN]; // 定义三个矩阵
int main()
{
int m, s, n;
cout << "请输入矩阵 A 的行数和列数:";
cin >> m >> s;
cout << "请输入矩阵 B 的行数和列数:";
cin >> s >> n;
// 输入矩阵 A
cout << "请输入矩阵 A:" << endl;
for (int i = 0; i < m; i++)
for (int j = 0; j < s; j++)
cin >> A[i][j];
// 输入矩阵 B
cout << "请输入矩阵 B:" << endl;
for (int i = 0; i < s; i++)
for (int j = 0; j < n; j++)
cin >> B[i][j];
// 计算矩阵 C = A * B
for (int i = 0; i < m; i++)
for (int j = 0; j < n; j++) {
C[i][j] = 0;
for (int k = 0; k < s; k++)
C[i][j] += A[i][k] * B[k][j];
}
// 输出矩阵 C
cout << "矩阵 A * B = " << endl;
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++)
cout << C[i][j] << " ";
cout << endl;
}
return 0;
}
```
希望能帮助到你!