第一次写博客,还是有点小激动的,先写一个简单的,俗话说:基础是基础,嘻嘻。
题意:
局部极大值
题目描述
给定m行n列的整数矩阵A,如果A的非边界元素A[i][j]大于相邻的上下左右4个元素,那么就称元素A[i][j]是矩阵的
局部极大值,要求输出给定矩阵的全部局部极大值及其所在位置。
输入格式
输入在第一行中给定A的行数m和列数n(3<=m,n<=20)接下来m行,每行给出A在该行的n元素值,数字间以空
格隔开
输出
每行按照“元素值 行号 列号”的格式输出局部极大值,其中行、列编号从1开始。要求按照行号递增输出,如果同
行有超过一个局部极大值,则该行按列号递增顺序输出,若没有局部极大值则输出“None 总行数 总列数”。
样例输入
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
这个问题其实很简单,就是判断一下。!!!注意有while.....交了好几次。。
我的代码。。。。
#include <stdio.h>
int main()
{
int M,N;
while(scanf("%d %d",&M,&N)!=EOF)
{
int n[M][N];
int i,j;
int count=0;
for(i=0;i<M;i++)
for(j=0;j<N;j++)
scanf("%d",&n[i][j]);
for(i=1;i<M-1;i++)
for(j=1;j<N-1;j++)
if(n[i][j]>n[i-1][j]&&n[i][j]>n[i+1][j]&& n[i][j]>n[i][j-1]&&n[i][j]>n[i][j+1])
{
printf("%d %d %d\n",n[i][j],i+1,j+1);
count=1;
}
if(count==0)
printf("None %d %d\n",M,N);
}
return 0;
}