👤

Imi puteti explica, va rog, cum se rezolva aceasta problema
Scrieţi un program C/C++ care citeşte de la tastatură un număr natural n (1≤n≤100)şi apoi
elementele unui tablou bidimensional cu n linii şi n coloane, care memorează numere naturale cu cel
mult 9 cifre fiecare; programul afişează pe ecran acele valori din tablou care sunt strict mai mici
decât toate elementele cu care se învecinează direct (aflate pe aceeaşi linie dar pe o coloană
alăturată sau pe aceeaşi coloană dar pe o linie alăturată), ca în exemplu. Numerele afişate vor fi
separate prin câte un spaţiu.
Exemplu: pentru n=4 şi tabloul alăturat se afişează numerele: 2 0 (2 se învecinează direct cu 4, 3, 6 şi
9, şi este mai mic decât acestea, iar 0 se învecinează direct cu 6, 9 şi 1 şi este mai mic decât acestea).
5 4 7 9
6 2 3 4
0 9 8 5
1 3 8 6
Indicatie: deoarece elementele de pe chenarul matricei au 3 sau 2 vecini (elementele din colturi),
pentru a nu face teste suplimentare, bordam matricea cu valori convenabile astfel incat sa nu
influenteze rezultatul calcului, de ex. 1000000000.


Răspuns :

Răspuns:

#include<iostream>

using namespace std;

int main()

{

int n,a[101][101];

cin>>n;

for(int i=1;i<=n;i++)

for(int j=1;j<=n;j++)

cin>>a[i][j];

for(int i=0;i<=n+1;i++)

{

a[0][i]=1000000000;//deasupra

a[n+1][i]=1000000000;//dedesupt

a[i][0]=1000000000;//lateral stanga

a[i][n+1]=1000000000;//lateral dreapta

}

for(int i=1;i<=n;i++)

for(int j=1;j<=n;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])//pozittiile corespunzatoare

cout<<a[i][j]<<" ";

return 0;

}

Explicație: