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
► 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.