矩阵是线性代数学科里常用的概念。矩阵C=A+B的加法规则,A矩阵对应的行列位置和B矩阵对应的行列位置数字相加,得到C矩阵对应行列位置的数字。通过编写程序,实现简单的矩阵加法运算。 要求:要用二重指针动态分配内存的方式控制矩阵,实现分配和释放。 输入:第一行输入矩阵A和B的行数,第二行输入矩阵A和B的列数,第三行输入矩阵A,第四行输入矩阵B 输出:按照行列输出一个矩阵C,同行数据之间有空格,行尾无空格
时间: 2023-05-22 15:01:51 浏览: 246
以下是实现矩阵加法的代码:
#include <stdio.h>
#include <stdlib.h>
int main() {
int row, col;
scanf("%d %d", &row, &col);
// 动态分配内存
int **A = (int **)malloc(row * sizeof(int *));
int **B = (int **)malloc(row * sizeof(int *));
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));
}
// 输入矩阵A和B
for (int i = 0; i < row; i++) {
for (int j = 0; j < col; j++) {
scanf("%d", &A[i][j]);
}
}
for (int i = 0; i < row; i++) {
for (int j = 0; j < col; j++) {
scanf("%d", &B[i][j]);
}
}
// 计算矩阵C
for (int i = 0; i < row; i++) {
for (int j = 0; j < col; j++) {
C[i][j] = A[i][j] + B[i][j];
}
}
// 输出矩阵C
for (int i = 0; i < row; i++) {
for (int j = 0; j < col; j++) {
printf("%d", C[i][j]);
if (j != col - 1) {
printf(" ");
}
}
printf("\n");
}
// 释放内存
for (int i = 0; i < row; i++) {
free(A[i]);
free(B[i]);
free(C[i]);
}
free(A);
free(B);
free(C);
return 0;
}
阅读全文