获取最大数组并将其转换为 C 中的 2x2 数组
Getting the max array and converting it into 2x2 array in C
我正在尝试将二维数组划分为多个区域,并通过获取其中的最大值从每个区域中获得一个代表。
例如:
12 14 | 329
19 24 | 3 4
11 26 | 3 8
13 24 | 7 5
进入:
24 32
26 8
如何修改代码获取每个区域的最大值?
int main() {
int disp[4][4] = {{12,14,32,9},
{19,24,3,4},
{11,26,3,8},
{13,24,7,5}};
int quadrant_size=2;
for(int x=0 ; x<N ; x+=quadrant_size){
for(int y=0 ; y<N ; y+=quadrant_size){
for(int i=x ; i<x+quadrant_size ; i++){
for(int j=y ; j<y+quadrant_size ; j++){
printf("%d ",disp[i][j]);
}
printf("\n");
}
printf("\n");
}
}
}
事实上,您几乎做到了:只需创建一个 mx
变量来查找该区域中的最大元素。
int main() {
int disp[4][4] = {{12,14,32,9},
{19,24,3,4},
{11,26,3,8},
{13,24,7,5}};
int quadrant_size=2;
int N = 4;
for(int x=0 ; x<N ; x+=quadrant_size){
for(int y=0 ; y<N ; y+=quadrant_size){
int mx = dist[x][y];
for(int i=x ; i<x+quadrant_size ; i++){
for(int j=y ; j<y+quadrant_size ; j++){
if (disp[i][j] > mx) {
mx = disp[i][j];
}
}
}
printf("%d ", mx);
}
printf("\n");
}
}
我正在尝试将二维数组划分为多个区域,并通过获取其中的最大值从每个区域中获得一个代表。
例如:
12 14 | 329
19 24 | 3 4
11 26 | 3 8
13 24 | 7 5
进入:
24 32
26 8
如何修改代码获取每个区域的最大值?
int main() {
int disp[4][4] = {{12,14,32,9},
{19,24,3,4},
{11,26,3,8},
{13,24,7,5}};
int quadrant_size=2;
for(int x=0 ; x<N ; x+=quadrant_size){
for(int y=0 ; y<N ; y+=quadrant_size){
for(int i=x ; i<x+quadrant_size ; i++){
for(int j=y ; j<y+quadrant_size ; j++){
printf("%d ",disp[i][j]);
}
printf("\n");
}
printf("\n");
}
}
}
事实上,您几乎做到了:只需创建一个 mx
变量来查找该区域中的最大元素。
int main() {
int disp[4][4] = {{12,14,32,9},
{19,24,3,4},
{11,26,3,8},
{13,24,7,5}};
int quadrant_size=2;
int N = 4;
for(int x=0 ; x<N ; x+=quadrant_size){
for(int y=0 ; y<N ; y+=quadrant_size){
int mx = dist[x][y];
for(int i=x ; i<x+quadrant_size ; i++){
for(int j=y ; j<y+quadrant_size ; j++){
if (disp[i][j] > mx) {
mx = disp[i][j];
}
}
}
printf("%d ", mx);
}
printf("\n");
}
}