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