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
#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ă!