【问题描述】给定m行n列(1≤m,n≤6)的整数矩阵a,如果a的非边界元素a[i][j]大于相邻的上下左右四个元素,那么就称元素a[i][j]是矩阵的局部极大值。要求输出给定矩阵的全部极大值及其所在的位置。
【样例输入】
4 5
1 1 1 1 1
1 3 9 3 1
1 5 3 5 1
1 1 1 1 1
【样例输出】
9 2 3
5 3 2
5 3 4
【样例说明】
局部极大值9,在第二行,第三列
#include <stdio.h>
int main() {
int m, n,i,j;
// 获取矩阵行数和列数
scanf("%d%d", &m, &n);
// 读入矩阵
int a[m][n];
for ( i = 0; i < m; ++i) {
for ( j = 0; j < n; ++j) {
scanf("%d", &a[i][j]);
}
}
// 输出矩阵的局部极大值及其所在位置
for ( i = 1; i < m - 1; ++i) {
for ( j = 1; j < n - 1; ++j) {
if (a[i][j] > a[i - 1][j] && a[i][j] > a[i + 1][j] &&
a[i][j] > a[i][j - 1] && a[i][j] > a[i][j + 1]) {
printf("%d %d %d\n", a[i][j], i + 1, j + 1);
}
}
}
return 0;
}