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

Scrieți un program C/C++ care citește de la tastatură numere naturale: n (n[2,20]), k (k[1,n]) și n∙n
numere din intervalul [0,109], elemente ale unui tablou bidimensional cu n linii și n coloane. Programul
transformă tabloul în memorie, deplasând circular spre dreapta, cu câte o poziție, toate elementele situate pe
linia a k-a, în stânga diagonalei secundare, ca în exemplu. Elementele tabloului obținut sunt afișate pe ecran,
fiecare linie pe câte o linie a ecranului, cu elementele fiecărei linii separate prin câte un spațiu.
Exemplu: pentru n=5, k=2 și tabloul
2 3 4 5 6
2 4 6 8 0
7 8 9 0 1
3 5 7 9 1
7 3 8 5 6
se obține tablou
l 2 3 4 5 6
6 2 4 8 0
7 8 9 0 1
3 5 7 9 1
7 3 8 5 6 (10p.)

Răspunsuri la întrebare

Răspuns de MihaiDiaconescu245
0

Răspuns:

#include <iostream>

using namespace std;

int n,k,i,j,a[21][21];

int main()

{

   cin>>n>>k;

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

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

           cin>>a[i][j];  

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

       swap(a[k][i],a[k][n-k-1]);

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

   {

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

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

       cout<<'\n';

   }

   return 0;

}

E corect nu doar pe exemplu.

Alte întrebări interesante