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

Scrieți un program C/C++ care citește de la tastatură un număr natural, n (n∈[2,20]), și construiește în memorie un tablou bidimensional cu n linii și n coloane, astfel încât fiecare linie a sa are proprietățile:
• elementul situat pe diagonala secundară are valoarea n;
• începând de la diagonala secundară, spre stânga, elementele formează un șir strict descrescător de numere consecutive, iar începând de la diagonala secundară, spre dreapta, elementele formează tot un șir strict descrescător de numere consecutive.

Exemplu: dacă n=5 se afișează pe ecran tabloul alăturat.

Anexe:

Răspunsuri la întrebare

Răspuns de Petruccinator
1

#include <iostream>

#include <vector>

int main() {

size_t j, i, n;

std::cin >> n;

std::vector<std::vector<size_t>> tabl(n);

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

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

     tabl[i - 1].push_back(j > n ? n - (j - n) : j);

     

   for (i = 0; i < n; ++i) {

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

           std::cout << tabl[i][j] << ' ';

           

       std::cout << '\n';

   }

}


michael23: as prefera fara te rog
michael23: fara libraria vector
Răspuns de alexgruescu790
8

Răspuns:

int a[1000][1000];

int n=0,m,k ,ok=0;

int main()

{

   cin>>n;

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

   {

       k=i;

       ok=1;

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

       {

               a[i][j]=k;

               if(k<n&&ok==1){

                   k++;

               }else{

                   ok=0;

                   k--;

               }

               }

       }

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

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

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

           }cout<<endl;

       }

   }

Alte întrebări interesante