Informatică, întrebare adresată de dianaxq, 8 ani în urmă

2
Scrieţi un program Pascal/C/C++ care citeşte de la tastaură un număr natural (25n524)
şi nxm numere naturale de cel mult patru cifre, elementele unui tablou bidimensional.
Programul determină prima respectiv ultima linie cu toate elementele nenule şi interschimbă
elementele celor două linii.
Programul va afişa matricea pe ecran, câte o linie a tabloului bidimensional pe câte o linie a
ecranului, cu câte un spațiu între elementele fiecărei linii. (10p.)
Exemplu pentru n=5, m-5 şi tabloul:
1 2 0 4 3
1 2 3 17
12076
32311
23408
Se va afişa:
1 2 0 4 3
3 2 3 1 1
20 7 6
12317
2 3 408

Răspunsuri la întrebare

Răspuns de marccorniet
2

#include <iostream>

using namespace std;

int main() {

   int n, m;

   cout << "Introduceti n si m: ";

   cin >> n >> m;

   int a[n][m];

   // Citirea tabloului

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

       for (int j = 0; j < m; j++) {

           cin >> a[i][j];

       }

   }

   // Cautarea primei si ultimei linii cu elemente nenule

   int primaLinieNenula = -1;

   int ultimaLinieNenula = -1;

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

       bool areElementeNenule = false;

       for (int j = 0; j < m; j++) {

           if (a[i][j] != 0) {

               areElementeNenule = true;

               break;

           }

       }

       if (areElementeNenule) {

           if (primaLinieNenula == -1) {

               primaLinieNenula = i;

           }

           ultimaLinieNenula = i;

       }

   }

   // Schimbarea elementelor celor doua linii

   if (primaLinieNenula != -1 && ultimaLinieNenula != -1) {

       for (int j = 0; j < m; j++) {

           int temp = a[primaLinieNenula][j];

           a[primaLinieNenula][j] = a[ultimaLinieNenula][j];

           a[ultimaLinieNenula][j] = temp;

       }

   }

   // Afisarea matricei rezultate

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

       for (int j = 0; j < m; j++) {

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

       }

       cout << endl;

   }

   return 0;

}

Explicație:Se citește numărul de linii și coloane ale tabloului bidimensional.

Se declară și se citește tabloul bidimensional.

Se caută prima și ultima linie cu elemente nenule, prin parcurgerea matricei și verificarea fiecărei linii.

Dacă s-au găsit ambele linii cu elemente nenule, se efectuează schimbarea elementelor lor.

Se afișează matricea rezultată, cu fiecare element al unei linii afișat pe aceeași linie și separate prin spațiu.

Sper că acest program vă ajută!


dianaxq: multumesc mult
marccorniet: tu stii sa lucrezi in Cangur?
dianaxq: cangur? adica?
dianaxq: mie imi trebuia pt un model de bac rezolvarea la problema asta, si daca te refereai la c++ atunci da, lucrez
marccorniet: Imi trebuie sa rezolvi problema in aplicatia Cangur(clasa 8)
dianaxq: ok
VxF: FYI, acel „Cangur” este de fapt unul dintre cele 3 moduri de funcţionare a programului Eduka+.
Alte întrebări interesante