局部极大值

来源:互联网 发布:激光雕刻用什么软件 编辑:程序博客网 时间:2024/05/19 21:45

第一次写博客,还是有点小激动的,先写一个简单的,俗话说:基础是基础,嘻嘻。

       题意:

局部极大值

时间限制:1 秒
内存限制:128 兆
特殊判题: 否
提交:18
解决: 8

题目描述

给定m行n列的整数矩阵A,如果A的非边界元素A[i][j]大于相邻的上下左右4个元素,那么就称元素A[i][j]是矩阵的

局部极大值,要求输出给定矩阵的全部局部极大值及其所在位置。

输入格式

输入在第一行中给定A的行数m和列数n3<=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;
}

0 0
原创粉丝点击