C 语言判断一个矩阵是另一个矩阵的子矩阵
时间: 2023-12-02 12:06:15 浏览: 20
以下是判断一个矩阵A是否是另一个矩阵B的子矩阵的 C 语言代码:
```c
#include <stdio.h>
#include <stdbool.h>
#define ROW_A 3
#define COL_A 3
#define ROW_B 5
#define COL_B 5
bool isSubmatrix(int matrixA[ROW_A][COL_A], int matrixB[ROW_B][COL_B]) {
int i, j, k, l;
bool match;
for (i = 0; i <= ROW_B - ROW_A; i++) {
for (j = 0; j <= COL_B - COL_A; j++) {
match = true;
for (k = 0; k < ROW_A; k++) {
for (l = 0; l < COL_A; l++) {
if (matrixA[k][l] != matrixB[i + k][j + l]) {
match = false;
break;
}
}
if (!match) {
break;
}
}
if (match) {
return true;
}
}
}
return false;
}
int main() {
int matrixA[ROW_A][COL_A] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
int matrixB[ROW_B][COL_B] = {{1, 2, 3, 4, 5}, {6, 7, 8, 9, 10}, {11, 12, 13, 14, 15}, {16, 17, 18, 19, 20}, {21, 22, 23, 24, 25}};
if (isSubmatrix(matrixA, matrixB)) {
printf("Matrix A is a submatrix of Matrix B.\n");
} else {
printf("Matrix A is not a submatrix of Matrix B.\n");
}
return 0;
}
```
该代码首先定义了两个矩阵,matrixA 和 matrixB,然后定义了一个名为 isSubmatrix 的函数来判断 matrixA 是否是 matrixB 的子矩阵。该函数使用四个循环嵌套来遍历 matrixB 中所有可能的子矩阵,然后在每个子矩阵中比较每个元素是否与 matrixA 中对应元素相同。如果找到了一个匹配的子矩阵,则返回 true,否则返回 false。
在主函数中,我们调用 isSubmatrix 函数来判断 matrixA 是否是 matrixB 的子矩阵,并输出相应的结果。