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

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 de ploPLO123
0

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 :)

Anexe:
Alte întrebări interesante