基本思想:
和三维矩阵的遍历类似,注意别超出数组大小;
关键点:
无;
#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; }