III.2 testul 1 (antrenament) 2021

Subiectul al III-lea – Exerciţiul 2

     Scrieți un program C/C++ care citește de la tastatură numărul natural n (n∈[

]) și elementele unui tablou bidimensional cu n linii și n coloane, numere natural din intervalul [ ].
Programul afișează pe ecran, separate prin câte un spațiu, elementele primului pătrat concentric, parcurs în sens invers al acelor de ceasornic, începând din colțul său stânga-sus, ca în exemplu. Primul pătrat concentric este format din prima și ultima linie, prima si ultima coloană a tabloului.
Exemplu: pentru n = 5 și tabloul alăturat, se afișează pe ecran numerele
1 2 3 4 5 6 7 8 9 0 2 4 6 8 1 3
  • variabilă de tip tablou bidimensional, declarată conform cerinței

int a[101][101];

  • date citite conform cerinței

cin>>n;

    for(i=1;i<=n;i++)

        for(j=1;j<=n;j++)

        cin>>a[i][j];

  • parcurgerea liniilor tabloului, afișând doar prima coloană

for(i=1;i<=n;i++)

        cout<<a[i][1]<<” „;

  • parcurgerea coloanelor tabloului, începând de la a doua coloană deoarece elementul a[1][n] a fost deja afișat în parcurgerea anterioară, afișând ultima linie

for(j=2;j<=n;j++)

        cout<<a[n][j]<<” „;

  • parcurgerea liniilor tabloului, începând de la penultima linie deoarece elementul a[n][n] a fost deja afișat în parcurgerea anterioară, afișând ultima coloană în ordine inversă

for(i=n-1;i>=1;i–)

        cout<<a[i][n]<<” „;

  • parcurgerea coloanelor tabloului, începând de la penultima coloană până la cea de-a doua deoarece elementele a[1][n] și a[1][1]au fost deja afișate, afișând prima linie în ordine inversă

for(j=n-1;j>=2;j–)

        cout<<a[1][j]<<” „;

  

#include <iostream>

using namespace std;

int main()
{
    int a[101][101],n,i,j;
    cin>>n;
    for(i=1;i<=n;i++)
        for(j=1;j<=n;j++)
        cin>>a[i][j];
    for(i=1;i<=n;i++)
        cout<<a[i][1]<<" ";
    for(j=2;j<=n;j++)
        cout<<a[n][j]<<" ";
    for(i=n-1;i>=1;i--)
        cout<<a[i][n]<<" ";
    for(j=n-1;j>=2;j--)
        cout<<a[1][j]<<" ";
    return 0;
}