PTA实验7-2-3 求矩阵的局部极大值 (15point(s)) Easy only once
基本思想:
和三维矩阵的遍历类似,注意别超出数组大小;
关键点:
无;
#include<stdlib.h>
#include<stdio.h>
#define maxn 21
int m,n;
int index = 0;
int ma[maxn][maxn];
int X[4] = { 0,1 ,0,-1};
int Y[4] = { 1,0,-1,0 };
int charge(int x, int y) {
for (int i = 0; i < 4; i++) {
int nx = x + X[i];
int ny = y + Y[i];
if (ma[nx][ny] >= ma[x][y]) {
//非极大值;
return 0;
}
}
return 1;
}
int main(){
int a;
scanf("%d%d",&m,&n);
int sum = 0;
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
scanf("%d", &ma[i][j]);
}
}
for (int i = 1; i < m-1; i++) {
for (int j = 1; j < n - 1; j++) {
if (charge(i, j)==1) {
//如果符合;
printf("%d %d %d\n", ma[i][j], i+1,j+1);
index++;
}
}
}
if (index == 0) {
printf("None %d %d\n", m, n);
}
return 0;
}

浙公网安备 33010602011771号