Ma ajutati si pe mine va rog !
Se dă o matrice cu n linii şi n coloane şi elemente numere naturale. Să se afișeze elementele prin parcurgerea șerpuită a matricei, începând din elementul de pe prima linie și prima coloană, ca în exemplu.
4
1 3 4 10
2 5 9 11
6 8 12 15
7 13 14 16
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Răspunsuri la întrebare
Răspuns:
#include <iostream>
#include <fstream>
using namespace std;
const int NMAX = 1000;
int a[NMAX + 1][NMAX + 1];
int main() {
int n, l, c, dirl, dirc, s, sens, ad;
cin >> n;
for ( l = 1; l <= n; l ++ ) {
for ( c = 1; c <= n; c ++ )
cin >> a[l][c];
}
s = 2;
sens = 1;
ad = 1;
while ( s <= 2 * n ) {
if ( s > n + 1 )
ad = s - n;
if ( sens == 1 ) {
l = ad;
c = s - ad;
dirl = 1;
dirc = -1;
} else {
c = ad;
l = s - ad;
dirl = -1;
dirc = 1;
}
while ( l > 0 && c > 0 && l <= n && c <= n ) {
cout << a[l][c] << ' ';
l += dirl;
c += dirc;
}
s ++;
sens = -sens;
}
return 0;
}
Explicație:
Sper ca despre parcurgerea asta vorbesti
Daca vrei sa schimbi dimensiunea matricei trebuie doar sa schimbi NMAX
Sper ca te-am ajutat :)
