如何用C语言编写一个使用二维数组和循环结构实现矩阵相乘的示例程序?
时间: 2024-12-15 12:16:40 浏览: 8
二维数组的表示形式数组名[下标][下标]-c语言数组详解
在C语言中,可以使用嵌套循环来实现两个矩阵的相乘。下面是一个简单的示例,假设我们有两个行向量和列向量的二维数组(即矩阵A是m x n,矩阵B是n x p),结果矩阵C将是m x p。
```c
#include <stdio.h>
// 定义函数用于计算矩阵相乘
void matrix_multiply(int A[][n], int B[][p], int C[][p], int m, int n, int p) {
for (int i = 0; i < m; ++i) { // 遍历第一个矩阵的行
for (int j = 0; j < p; ++j) { // 遍历第二个矩阵的列
// 初始化结果矩阵的元素值为0
C[i][j] = 0;
for (int k = 0; k < n; ++k) { // 遍历第一个矩阵的列,对应第二个矩阵的行
// 计算矩阵乘法的每个元素
C[i][j] += A[i][k] * B[k][j];
}
}
}
}
int main() {
int A[m][n], B[n][p], C[m][p]; // 定义矩阵
int m = ...; // 第一矩阵行数
int n = ...; // 共享的列数
int p = ...; // 第二矩阵行数
// 填充输入矩阵...
// ...
matrix_multiply(A, B, C, m, n, p);
// 打印结果矩阵
for (int i = 0; i < m; ++i) {
for (int j = 0; j < p; ++j) {
printf("%d ", C[i][j]);
}
printf("\n");
}
return 0;
}
```
阅读全文