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

Se dă o matrice pătratică de dimensiune n. Aceasta este împărțită în patru sectoare de către diagonala principală și cea secundară. Să se efectueze o permutare circulară a sectoarelor, în sensul acelor de ceasornic. Date de intrare Pe prima linie se află numărul n. Pe următoarele n linii se află câte n numere separate prin câte un spațiu, reprezentând elementele matricei. Date de ieșire Programul va afișa matricea după efectuarea permutării. Restricții 1 ≤ n ≤ 50 1 ≤ m[i][j] ≤ 100.

Răspunsuri la întrebare

Răspuns de andrei750238
0

► Explicatie :
Rotim matricea la 90 de grade in sensul acelor de ceasornic apoi punem diagonalele in pozitia care trebuie.

► Cod :

#include <iostream>

using namespace std;

const int MAX_SIZE = 101;

int main() {

int n, mt[MAX_SIZE][MAX_SIZE], aux[MAX_SIZE][MAX_SIZE];

cin >> n;

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

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

       cin >> mt[i][j];

   }

}

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

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

       aux[j][n - i + 1] = mt[i][j];

   }

}

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

   aux[i][i] = mt[i][i];

}

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

   aux[i][n - i + 1] = mt[i][n - i + 1];

}

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

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

       cout << aux[i][j] <<' ';

   }

   cout << '\n';

}

return 0;

}

► Nota :
Codul e copiat cu OCR dintr-un screenshot mai vechi, deci exista posibilitatea sa exista mici probleme. Din ce tin minte rezolvarea era de 100 de puncte.

Alte întrebări interesante