用c++写matrix矩阵的运算
时间: 2023-05-16 10:05:06 浏览: 87
可以使用二维数组来表示矩阵,然后通过循环实现矩阵的加减乘除等运算。以下是一个简单的示例代码:
```c
#include <stdio.h>
#define ROWS 3
#define COLS 3
void print_matrix(int matrix[ROWS][COLS]) {
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
printf("%d ", matrix[i][j]);
}
printf("\n");
}
}
void add_matrix(int a[ROWS][COLS], int b[ROWS][COLS], int result[ROWS][COLS]) {
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
result[i][j] = a[i][j] + b[i][j];
}
}
}
void sub_matrix(int a[ROWS][COLS], int b[ROWS][COLS], int result[ROWS][COLS]) {
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
result[i][j] = a[i][j] - b[i][j];
}
}
}
void mul_matrix(int a[ROWS][COLS], int b[ROWS][COLS], int result[ROWS][COLS]) {
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
result[i][j] = 0;
for (int k = 0; k < COLS; k++) {
result[i][j] += a[i][k] * b[k][j];
}
}
}
}
int main() {
int a[ROWS][COLS] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
int b[ROWS][COLS] = {{9, 8, 7}, {6, 5, 4}, {3, 2, 1}};
int c[ROWS][COLS];
printf("Matrix A:\n");
print_matrix(a);
printf("Matrix B:\n");
print_matrix(b);
add_matrix(a, b, c);
printf("Matrix A + B:\n");
print_matrix(c);
sub_matrix(a, b, c);
printf("Matrix A - B:\n");
print_matrix(c);
mul_matrix(a, b, c);
printf("Matrix A * B:\n");
print_matrix(c);
return 0;
}
```
这个程序可以实现矩阵的加减乘运算,输出结果如下:
```
Matrix A:
1 2 3
4 5 6
7 8 9
Matrix B:
9 8 7
6 5 4
3 2 1
Matrix A + B:
10 10 10
10 10 10
10 10 10
Matrix A - B:
-8 -6 -4
-2 0 2
4 6 8
Matrix A * B:
30 24 18
84 69 54
138 114 90
```