Please enable java script to visit.
NOTEBOOK
HOMEPHP / MySQLJS / HTMLWXappPythonC++Blender其他
【入门】靶心数 - NOTEBOOK
【入门】靶心数
C++
Posted on 2023-08-10
摘要 : 学会理解多重循环for的使用,以及二维数组的使用。
循环遍历的问题。
❱ 描述:

James同学发现了在二维数组中有这样一类数,这个数正好比自己上下左右四个方向的数都大(由于需要比四个方向的数都大,因此这个数不可能在第一行、最后一行、第一列、最后一列),James把它们称为靶心数,请你编程求出一个二维数组的靶心数有哪些,输出他们。


第一行是两个整数n和m(n和m都是4~100之间的整数),代表接下来的二维数组有n行m列。
接下来n行,每行有m个整数。

❱ 输出描述:

请按照输入的顺序输出满足条件的靶心数,每行1个。

❱ 用例输入:

4 4
1 2 3 4
5 6 5 8
9 1 11 10
13 4 5 16


❱ 用例输出:

6
11


#include<iostream>
using namespace std;


int main() {
int n,m;
cin>>n>>m;
int a[n+2][m+2]={0}; // 初始化二维数组,每一个值都是0

for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cin>>a[i][j]; // 依次输入数值,赋予 数组a
}
}

for(int i=2;i<=n-1;i++){ // 注意循环的范围
for(int j=2;j<=m-1;j++){ // 注意循环的范围
if(a[i][j]>a[i-1][j] && a[i][j]>a[i+1][j] && a[i][j]>a[i][j-1] && a[i][j]>a[i][j+1]){
// 如果比周围数大,就显示出来。
cout<<a[i][j]<<endl;
}
}
}

return 0;
}