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;
}

  

posted @ 2020-02-26 11:51  暮云林凌  阅读(1142)  评论(0)    收藏  举报