III.2 testul 4 (antrenament) 2021
Subiectul al III-lea – Exerciţiul 2
| Scrieţi un program C/C++ care citeşte de la tastatură numere naturale din intervalul [2,100]: m, n şi elementele unui tablou bidimensional cu m linii şi n coloane. Programul afișează pe ecran, pentru fiecare linie a sa, cea mai mare dintre valorile strict mai mici decât 21 memorate în aceasta, sau mesajul nu exista, dacă nu există nicio astfel de valoare pe linia respectivă. Numerele, respectiv mesajele, sunt afișate pe linii separate ale ecranului, în ordinea liniilor corespunzătoare din tablou. Exemplu: pentru m = 3, n = 5 și tabloul alăturat se afișează pe ecran 16 nu exista 9 |

- variabilă de tip tablou bidimensional, declarată conform cerinței
int a[101][101];
- 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 fiecare coloană, inițializând variabila maxi cu -1
for(i=1;i<=m;i++)
{
maxi=-1;
- se parcurge fiecare linie, verificându-se dacă elementul curent este mai mare ca maxi (a[i][j]>maxi) și mai mic ca 21(a[i][j]<21), actualizându-se valoarea variabilei maxi(maxi=a[i][j])
for(j=1;j<=n;j++)
if(a[i][j]>maxi&&a[i][j]<21)
maxi=a[i][j];
- după ce s-au parcurs liniile, înainte să se treacă la următoarea coloană pentru parcurgere, se verifică dacă maxi și-a schimbat valoarea(maxi!=-1), în caz afirmativ se afișează valoarea lui(cout<<maxi<<endl;), în caz contrar se afișează mesajul nu există(cout<<„nu exista”<<endl;).
if(maxi!=-1)
cout<<maxi<<endl;
else cout<<„nu exista”<<endl;
#include <iostream>
using namespace std;
int main()
{
int a[101][101],m,n,i,j,maxi;
cin>>m>>n;
for(i=1;i<=m;i++)
for(j=1;j<=n;j++)
cin>>a[i][j];
for(i=1;i<=m;i++)
{
maxi=-1;
for(j=1;j<=n;j++)
if(a[i][j]>maxi&&a[i][j]<21)
maxi=a[i][j];
if(maxi!=-1)
cout<<maxi<<endl;
else cout<<"nu exista"<<endl;
}
return 0;
}
