利用指针计算2个矩阵的和 C语言
时间: 2024-05-13 07:16:46 浏览: 102
以下是两个矩阵相加的 C 代码,利用指针实现:
```c
#include <stdio.h>
void matrix_add(int *a, int *b, int *c, int m, int n) {
int i, j;
for (i = 0; i < m; i++) {
for (j = 0; j < n; j++) {
*(c + i * n + j) = *(a + i * n + j) + *(b + i * n + j);
}
}
}
int main() {
int m, n, i, j;
printf("Enter the number of rows and columns of the matrices:\n");
scanf("%d%d", &m, &n);
int a[m][n], b[m][n], c[m][n];
printf("Enter the elements of the first matrix:\n");
for (i = 0; i < m; i++) {
for (j = 0; j < n; j++) {
scanf("%d", &a[i][j]);
}
}
printf("Enter the elements of the second matrix:\n");
for (i = 0; i < m; i++) {
for (j = 0; j < n; j++) {
scanf("%d", &b[i][j]);
}
}
matrix_add(&a[0][0], &b[0][0], &c[0][0], m, n);
printf("The sum of the matrices is:\n");
for (i = 0; i < m; i++) {
for (j = 0; j < n; j++) {
printf("%d\t", c[i][j]);
}
printf("\n");
}
return 0;
}
```
这个代码中,我们定义了一个 `matrix_add` 函数,该函数接收两个矩阵的指针和一个指向结果矩阵的指针,以及矩阵的行数和列数。在函数中,我们使用两个循环迭代矩阵中的所有元素,并将它们相加,然后将结果存储在结果矩阵中。注意,我们使用指针算术来访问矩阵中的元素。
在主函数中,我们首先读取矩阵的行数和列数,然后使用两个循环读取两个矩阵的元素。最后,我们调用 `matrix_add` 函数将两个矩阵相加,并将结果打印出来。
阅读全文