请用c语言编写一个函数,使用指针将两个矩阵相加,并把结果矩阵返回给调用函数。
时间: 2024-05-08 20:18:48 浏览: 105
好的,以下是用C语言编写的函数,实现两个矩阵相加的功能:
```c
#include <stdio.h>
#include <stdlib.h>
void matrix_add(int **a, int **b, int **c, int row, int col) {
for(int i = 0; i < row; i++) {
for(int j = 0; j < col; j++) {
c[i][j] = a[i][j] + b[i][j];
}
}
}
int main() {
int row = 2, col = 2;
int **a, **b, **c;
a = (int **)malloc(row * sizeof(int *));
b = (int **)malloc(row * sizeof(int *));
c = (int **)malloc(row * sizeof(int *));
for(int i = 0; i < row; i++) {
a[i] = (int *)malloc(col * sizeof(int));
b[i] = (int *)malloc(col * sizeof(int));
c[i] = (int *)malloc(col * sizeof(int));
}
for(int i = 0; i < row; i++) {
for(int j = 0; j < col; j++) {
a[i][j] = i + j;
b[i][j] = i - j;
}
}
matrix_add(a, b, c, row, col);
for(int i = 0; i < row; i++) {
for(int j = 0; j < col; j++) {
printf("%d ", c[i][j]);
}
printf("\n");
}
return 0;
}
```
在上述代码中,通过动态内存分配的方式,创建了3个二维数组a、b、c,分别存储两个待相加的矩阵和相加后的结果矩阵。接着,matrix_add这个函数使用嵌套的for循环实现了矩阵相加的逻辑,将结果存储在参数c所指向的数组中。最后,通过嵌套的for循环将结果输出到终端上。
阅读全文