III.2 testul 11 (antrenament) 2021
Subiectul al III-lea – Exerciţiul 2
| Scrieți un program C/C++ care citește de la tastatură numere naturale: n (n aparține [2,20]), k (k aparține [2,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, interschimbând șirul elementelor situate pe linia a k-a, în stânga diagonalei principale, parcurse de la stânga la dreapta, cu șirul elementelor situate pe coloana a k-a, deasupra diagonalei principale, parcurse de sus în jos, 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=4 și tabloul |

- variabilă de tip tablou bidimensional, declarată conform cerinței
int a[21][21];
- date citite conform cerinței
cin>>n>>k;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
cin>>a[i][j];
- se parcurg primele k linii ale matricei, interschimbând folosind variabila aux elementul aflat pe linia k, coloana j (a[k][i]) cu elementul aflat pe linia i, coloana k (a[i][k])
for(i=1;i<=k;i++)
{
aux=a[k][i];
a[k][i]=a[i][k];
a[i][k]=aux;
}
- se afișează matricea
for(i=1;i<=n;i++){
for(j=1;j<=n;j++)
cout<<a[i][j]<<” „;
cout<<endl;
}
#include <iostream>
using namespace std;
int main()
{
int a[21][21],n,k,i,j,aux;
cin>>n>>k;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
cin>>a[i][j];
for(i=1;i<=k;i++)
{
aux=a[k][i];
a[k][i]=a[i][k];
a[i][k]=aux;
}
for(i=1;i<=n;i++){
for(j=1;j<=n;j++)
cout<<a[i][j]<< " ";
cout<<endl;}
return 0;
}