152. 矩陣加法
user_6817964
c_cpp
3 years ago
1.2 kB
9
Indexable
typedef struct matrix {
int row, col;
int** data;
} *MATRIX;
int main() {
MATRIX x = (struct matrix*)malloc(sizeof(struct matrix));
MATRIX y = (struct matrix*)malloc(sizeof(struct matrix));
scanf("%d%d", &x->row, &x->col);
x->data = (int**)malloc(sizeof(int*) * x->row);
for (int i = 0; i < x->row; i++) {
x->data[i] = (int*)malloc(sizeof(int) * x->col);
}
for (int r = 0; r < x->row; r++) {
for (int c = 0; c < x->col; c++) {
scanf("%d", &x->data[r][c]);
}
}
scanf("%d%d", &y->row, &y->col);
y->data = (int**)malloc(sizeof(int*) * y->row);
for (int i = 0; i < y->row; i++) {
y->data[i] = (int*)malloc(sizeof(int) * y->col);
}
for (int r = 0; r < y->row; r++) {
for (int c = 0; c < y->col; c++) {
scanf("%d", &y->data[r][c]);
}
}
if (x->col == y->col && x->row == y->row) {
for (int r = 0; r < x->row; r++) {
for (int c = 0; c < x->col; c++) {
if (c == 0) {
printf("%d", x->data[r][c] + y->data[r][c]);
}
else {
printf(" %d", x->data[r][c] + y->data[r][c]);
}
}
if (r != (x->row) - 1) {
printf("\n");
}
}
}
else {
printf("不可相加");
}
free(x->data);
free(y->data);
return 0;
}Editor is loading...