[土狗之路]coursera C语言进阶 习题 寻找山顶

来源:互联网 发布:争渡读屏软件官方网站 编辑:程序博客网 时间:2024/04/27 16:00

直接上题:

编程题#3:寻找山顶

来源: POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩。)

注意: 总时间限制: 1000ms 内存限制: 65536kB

描述

在一个m×n的山地上,已知每个地块的平均高程,请求出所有山顶所在的地块(所谓山顶,就是其地块平均高程不比其上下左右相邻的四个地块每个地块的平均高程小的地方)。

输入

第一行是两个整数,表示山地的长m(5≤m≤20)和宽n(5≤n≤20)。

其后m行为一个m×n的整数矩阵,表示每个地块的平均高程。每行的整数间用一个空格分隔。

输出

输出所有上顶所在地块的位置。每行一个。按先m值从小到大,再n值从小到大的顺序输出。

样例输入

10 50 76 81 34 661 13 58 4 405 24 17 6 6513 13 76 3 208 36 12 60 3742 53 87 10 6542 25 47 41 3371 69 94 24 1292 11 71 3 8291 90 20 95 44

样例输出

0 20 42 12 43 03 24 35 25 47 28 08 49 3
然后就是代码
#include<iostream>using namespace std;int main() {int m, n;cin >> m >> n;int mount[20][20];for (int i = 0; i < m; i++) {for (int j = 0; j < n; j++) {cin >> mount[i][j];}}for (int i = 0; i < m; i++) {for (int j = 0; j < n; j++) {if (((mount[i][j] >= mount[i-1][j]&&i-1>=0)||(i-1<0))&& ((mount[i][j] >= mount[i + 1][j] && i + 1 <= m-1) || (i + 1>m-1))&& ((mount[i][j] >= mount[i][j-1] && j - 1 >= 0) || (j - 1<0))&& ((mount[i][j] >= mount[i][j+1] && j + 1 <= n-1) || (j + 1>n-1)))//逻辑关系的运算,重点是对边框处的处理cout << i << ' ' << j << endl;}}return 0;}

0 0
原创粉丝点击