用C语言编程:定义两个4乘5的二维数组矩阵,并利用函数传参完成两个矩阵之间的加减操作
时间: 2024-10-22 19:21:48 浏览: 56
在C语言中,我们可以定义二维数组并创建函数来处理它们的加减操作。首先,我们需要定义结构体表示矩阵,并提供加法和减法函数。这是一个简单的例子:
```c
#include <stdio.h>
// 定义矩阵结构体
typedef struct {
int rows;
int cols;
int data[4][5]; // 4行5列的数组
} Matrix;
// 函数声明,接受Matrix类型的参数
void addMatrices(Matrix* mat1, Matrix* mat2);
void subtractMatrices(Matrix* mat1, Matrix* mat2);
// 实现加法操作
void addMatrices(Matrix* mat1, Matrix* mat2) {
for (int i = 0; i < mat1->rows; i++) {
for (int j = 0; j < mat1->cols; j++) {
mat1->data[i][j] += mat2->data[i][j];
}
}
}
// 实现减法操作
void subtractMatrices(Matrix* mat1, Matrix* mat2) {
for (int i = 0; i < mat1->rows; i++) {
for (int j = 0; j < mat1->cols; j++) {
mat1->data[i][j] -= mat2->data[i][j];
}
}
}
// 主函数示例
int main() {
Matrix m1 = {4, 5};
Matrix m2 = {4, 5};
// 初始化矩阵数据(这里仅做示例,实际应用需要用户输入)
for (int i = 0; i < m1.rows; i++) {
for (int j = 0; j < m1.cols; j++) {
m1.data[i][j] = i * 10 + j;
m2.data[i][j] = i * 10 + j + 1;
}
}
printf("Matrix 1:\n");
printMatrix(&m1); // 自定义的打印矩阵函数
printf("\nMatrix 2:\n");
printMatrix(&m2);
addMatrices(&m1, &m2);
printf("\nAfter addition:\n");
printMatrix(&m1);
subtractMatrices(&m1, &m2);
printf("\nAfter subtraction:\n");
printMatrix(&m1);
return 0;
}
// 打印矩阵函数
void printMatrix(Matrix* mat) {
for (int i = 0; i < mat->rows; i++) {
for (int j = 0; j < mat->cols; j++) {
printf("%d ", mat->data[i][j]);
}
printf("\n");
}
}
阅读全文