C++ 如何在二维数组中找出任意一个数值,要求大于等于上下左右相邻的4个数值

二维数组的四个边都是负无穷大……有相对好点的算法吗?一个个试过去的貌似太容易了……

//#include "stdafx.h"//vc++6.0加上这一行.
#include <iostream>
#include "iomanip"
#include "time.h"
using namespace std;
#define N 10
void main(void){
int s[N][N],i,j,k;
srand((unsigned)time(NULL));
for(i=0;i<N;i++){
for(j=0;j<N;j++)
cout << setw(4) << (s[i][j]=rand()%1000);
cout << endl;
}
cout << "\nThey are as follows:\n" ;
for(k=N-1,i=1;i<k;i++)
for(j=1;j<k;j++)
if(s[i][j]>=s[i-1][j] && s[i][j]>=s[i+1][j] && s[i][j]>=s[i][j-1] && s[i][j]>=s[i][j+2])
cout << setw(4) << s[i][j];
cout << endl;
}
四边都是无穷的还不会哟……追问

这个算法是一个一个试过去的么……有没有更好一点的算法?

追答

数组中的数是随机的,所以必须是一个一个地“试”过去。这个代码只是把四边排除了,也算是一个小小的算法吧!

温馨提示:答案为网友推荐,仅供参考
相似回答