利用指针计算2个矩阵的和用C语言
时间: 2024-05-03 11:18:05 浏览: 139
下面是一个示例代码,可以计算两个矩阵的和:
```
#include <stdio.h>
#include <stdlib.h>
int main() {
int m, n, i, j;
int *a, *b, *c;
printf("Enter the number of rows and columns of the matrix: ");
scanf("%d %d", &m, &n);
// Allocate memory for the matrices
a = (int*)malloc(m * n * sizeof(int));
b = (int*)malloc(m * n * sizeof(int));
c = (int*)malloc(m * n * sizeof(int));
// Input the first matrix
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*n + j));
}
}
// Input the second matrix
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*n + j));
}
}
// Add the matrices
for(i = 0; i < m; i++) {
for(j = 0; j < n; j++) {
*(c + i*n + j) = *(a + i*n + j) + *(b + i*n + j);
}
}
// Output the result
printf("The sum of the matrices is:\n");
for(i = 0; i < m; i++) {
for(j = 0; j < n; j++) {
printf("%d ", *(c + i*n + j));
}
printf("\n");
}
// Free memory
free(a);
free(b);
free(c);
return 0;
}
```
在这个示例代码中,我们使用了指针来动态分配内存,并且使用指针来访问矩阵中的元素。通过使用指针,我们可以避免使用多维数组带来的一些限制,例如在函数参数中传递时需要指定数组的大小。
阅读全文