gpt4 book ai didi

c - 我想找到一个矩阵的所有子矩阵。我用 C 编写了一个代码,但它只能找到正方形。我该如何改进我的代码

转载 作者:行者123 更新时间:2023-11-30 21:28:56 25 4
gpt4 key购买 nike

以下代码查找方阵的所有方子矩阵:

#include <stdio.h>    
int main() {
int mtrx_size = 3;
int mat[3][3] = {
{ 1, 2, 3},
{ 9,10,11},
{17,18,19},
};

//我以 3*3 矩阵为例,但它适用于任何方阵

int i, j, k, l, m;
int sub_mtrx_size;

for(sub_mtrx_size = mtrx_size; sub_mtrx_size > 1 ; sub_mtrx_size--) {
m = mtrx_size - sub_mtrx_size + 1;
for (k = 0; k <m; k++) {
for (l = 0; l <m; l++) {
for (i = 0; i < sub_mtrx_size; i++) {
for (j = 0; j < sub_mtrx_size; j++) {
printf("%3d ", mat[i+k][j+k]);
}
printf("\n");
}
printf("\n");
}
}
}

return 0;

}

但是我想找到一个矩阵的所有子矩阵。

最佳答案

我尝试过这种方式来获取我的所有子矩阵:

#include <stdio.h>

int main() {
int mtrx_size = 3;
int mtrx_size1=3;
int mat[3][3] = {
{ 1, 2,3},
{ 9,10,4},
{ 5,6,7},
};

//这里我以 3*3 矩阵为例,尽管它应该适用于其他矩阵

int i, j, ioff, joff, off_cnt,off_cnt1;
int sub_mtrx_size,sub_mtrx_size1;

for(sub_mtrx_size = mtrx_size; sub_mtrx_size > 0 ; sub_mtrx_size--)
for(sub_mtrx_size1 = mtrx_size1; sub_mtrx_size1 > 0 ; sub_mtrx_size1--){
off_cnt = mtrx_size - sub_mtrx_size + 1;
off_cnt1 = mtrx_size1 - sub_mtrx_size1 + 1;
for (ioff = 0; ioff < off_cnt; ioff++) {
for (joff = 0; joff < off_cnt1; joff++) {
for (i = 0; i < sub_mtrx_size; i++) {
for (j = 0; j < sub_mtrx_size1; j++) {
printf("%3d ", mat[i+ioff][j+joff]);
}
printf("\n");
}
printf("\n");
}
}
}

return 0;
}

关于c - 我想找到一个矩阵的所有子矩阵。我用 C 编写了一个代码,但它只能找到正方形。我该如何改进我的代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36519641/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com