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

  


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM