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

VA ROG MULT ,URGENT C++​

Anexe:

Răspunsuri la întrebare

Răspuns de adresadeemail1112
0

#include <iostream>

using namespace std;

int main()

{int n,i,j,l,a[21][21];

cin>>n;

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

{l=i;

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

   { a[i][j]=l;

     if (j>=n+1-i)

         l--;

      else l++;

   }

}

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

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

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

cout<<'\n';

}

}

Explicație: se observă cum fiecare linie începe cu a câta este( i), crește până la poziția n+1-i pe care se află n, după care scade, așa că am luat un l egal cu a câta linie este fiecare, pe care mai întai în for-ul cu j o atribuim lui a[i][j], după care verificăm dacă j>=n+1-i (formula elementelor de pe diagonala secundară), dacă este adevărat, atunci scădem din l 1, dacă încă nu a ajuns, atunci îl creștem pe l cu 1. La final afișăm


adresadeemail1112: în loc de '\n' poți scrie endl
alina6455: multumesc din suflet
adresadeemail1112: cpl
Alte întrebări interesante