III.2 testul 10 (antrenament) 2021
Subiectul al III-lea – Exerciţiul 2
| O valoare filtrează două șiruri dacă există doi termeni care au acea valoare, unul fiind în primul șir, iar celălalt în al doilea șir. Scrieți un program C/C++ care citește de la tastatură numere naturale din intervalul [2,20]: m, n și elementele unui tablou bidimensional cu m linii și n coloane, cu proprietatea că nu există două elemente egale situate pe aceeași linie sau pe aceeași coloană. Programul afișează pe ecran valorile care pot filtra șirul format din primele n-1 elemente de pe prima linie, respectiv șirul format din ultimele m-1 elemente ale ultimei coloane a tabloului, ca în exemplu. Valorile sunt afișate într-o ordine oarecare, separate prin câte un spațiu, sau mesajul nu exista, dacă nu există astfel de valori. Exemplu: pentru m=5, n=4 și tabloul alăturat, se afișează pe ecran, nu neapărat în această ordine, numerele 4 7 |

- variabilă de tip tablou bidimensional, declarată conform cerinței
int a[21][21];
- date citite conform cerinței
cin>>m>>n;
for(i=1;i<=m;i++)
for(j=1;j<=n;j++)
cin>>a[i][j];
- se parcurge matricea fără prima linie și ultima coloană și se verifică dacă elementele aflate pe prima linie(a[1][j]) se găsesc pe ultima coloană(a[i][n]), dacă condiția este îndeplinită atunci se afișează elementul(cout<<a[1][j]<<” „;).
for(j=1;j<=n-1;j++)
for(i=2;i<=m;i++)
if(a[1][j]==a[i][n])
cout<<a[1][j]<<” „;
#include <iostream>
using namespace std;
int main()
{
int a[21][21],i,j,n,m;
cin>>m>>n;
for(i=1;i<=m;i++)
for(j=1;j<=n;j++)
cin>>a[i][j];
for(j=1;j<=n-1;j++)
for(i=2;i<=m;i++)
if(a[1][j]==a[i][n])
cout<<a[1][j]<<" ";
return 0;
}
