用C语言编写一个3×3矩阵相乘的程序
时间: 2023-08-31 21:19:22 浏览: 384
### 回答1:
好的,这是一个用 C 语言编写的 3x3 矩阵相乘的程序。
#include <stdio.h>
int main(void)
{
int a[3][3], b[3][3], c[3][3], i, j, k;
// 输入矩阵 a 和 b 的值
printf("输入矩阵 a 的值: \n");
for (i = 0; i < 3; i++)
{
for (j = 0; j < 3; j++)
{
scanf("%d", &a[i][j]);
}
}
printf("输入矩阵 b 的值: \n");
for (i = 0; i < 3; i++)
{
for (j = 0; j < 3; j++)
{
scanf("%d", &b[i][j]);
}
}
// 计算矩阵 c = a * b
for (i = 0; i < 3; i++)
{
for (j = 0; j < 3; j++)
{
c[i][j] = 0;
for (k = 0; k < 3; k++)
{
c[i][j] += a[i][k] * b[k][j];
}
}
}
// 输出矩阵 c
printf("矩阵 c 为: \n");
for (i = 0; i < 3; i++)
{
for (j = 0; j < 3; j++)
{
printf("%d ", c[i][j]);
}
printf("\n");
}
return 0;
}
在这个程序中,我们使用了两个 3x3 的整数数组 `a` 和 `b` 存储输入的矩阵,并使用另一个 3x3 的整数数组 `c` 来存储输出的矩阵。我们使用三重循环来计算矩阵乘法的结果,最后输出矩阵 `c` 的值。
### 回答2:
下面是一个用C语言编写的3×3矩阵相乘的程序的示例:
```c
#include <stdio.h>
void matrix_multiply(int matrix1[][3], int matrix2[][3], int result[][3]) {
int i, j, k;
for(i = 0; i < 3; i++) {
for(j = 0; j < 3; j++) {
result[i][j] = 0;
for(k = 0; k < 3; k++) {
result[i][j] += matrix1[i][k] * matrix2[k][j];
}
}
}
}
int main() {
int matrix1[3][3] = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};
int matrix2[3][3] = {
{2, 4, 6},
{1, 3, 5},
{7, 9, 11}
};
int result[3][3];
matrix_multiply(matrix1, matrix2, result);
printf("矩阵相乘的结果是:\n");
for(int i = 0; i < 3; i++) {
for(int j = 0; j < 3; j++) {
printf("%d ", result[i][j]);
}
printf("\n");
}
return 0;
}
```
这个程序定义了一个`matrix_multiply`函数来执行两个3×3矩阵的相乘操作。它接受两个二维数组作为输入矩阵,并将结果存储在第三个二维数组中。程序还包含了一个`main`函数来测试`matrix_multiply`函数,将两个输入矩阵传递给它,然后打印出结果矩阵。在这个示例中,我们定义了两个输入矩阵`matrix1`和`matrix2`,并将它们作为参数传递给`matrix_multiply`函数来执行矩阵相乘操作。最后,打印出结果矩阵。
### 回答3:
C语言编写一个3×3矩阵相乘的程序如下所示:
```c
#include <stdio.h>
void matrixMultiply(int matrix1[3][3], int matrix2[3][3], int result[3][3]) {
int i, j, k;
for (i = 0; i < 3; i++) {
for (j = 0; j < 3; j++) {
result[i][j] = 0;
for (k = 0; k < 3; k++) {
result[i][j] += matrix1[i][k] * matrix2[k][j];
}
}
}
}
int main() {
int matrix1[3][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
int matrix2[3][3] = {{9, 8, 7}, {6, 5, 4}, {3, 2, 1}};
int result[3][3];
matrixMultiply(matrix1, matrix2, result);
printf("Matrix multiplication result:\n");
int i, j;
for (i = 0; i < 3; i++) {
for (j = 0; j < 3; j++) {
printf("%d ", result[i][j]);
}
printf("\n");
}
return 0;
}
```
该程序定义了一个`matrixMultiply`函数,该函数接受两个3×3的矩阵作为参数,并将它们相乘的结果存储在第三个矩阵中。在`main`函数中,测试了该函数,并将结果打印出来。
输入矩阵 `matrix1` 和 `matrix2` 是两个3×3的矩阵,`result` 是用来存储结果的矩阵。矩阵相乘的算法是按照矩阵乘法规则,通过三个嵌套的循环分别计算结果矩阵的每个元素。最后将结果矩阵打印出来。
阅读全文