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;
}