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
Exemple
Date de intrare Date de ieșire
3
1 2 3
4 5 6
7 8 9 1 4 3
8 5 2
7 6 9
4
11 12 13 14
21 22 23 24
31 32 33 34
41 42 43 44 11 31 21 14
42 22 23 12
43 32 33 13
41 34 24 44
5
11 12 13 14 15
21 22 23 24 25
31 32 33 34 35
41 42 43 44 45
51 52 53 54 55 11 41 31 21 15
52 22 32 24 12
53 43 33 23 13
54 42 34 44 14
51 45 35 25 55
Limbaj C++
Răspunsuri la întrebare
Răspuns de
0
Răspuns:
#include <iostream>
using namespace std;
const int MAX_N = 50;
int n;
int matrix[MAX_N][MAX_N];
void rotate() {
for (int i = 0; i < n / 2; i++) {
for (int j = i; j < n - i - 1; j++) {
int temp = matrix[i][j];
matrix[i][j] = matrix[j][n-1-i];
matrix[j][n-1-i] = matrix[n-1-i][n-1-j];
matrix[n-1-i][n-1-j] = matrix[n-1-j][i];
matrix[n-1-j][i] = temp;
}
}
}
int main() {
cin >> n;
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
cin >> matrix[i][j];
}
}
rotate();
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
cout << matrix[i][j] << " ";
}
cout << endl;
}
return 0;
}
Juju93:
Salut si multumesc de ajutor dar nu e corecta rezolvarea.
11 12 13 14
21 22 23 24
31 32 33 34
41 42 43 44
42 22 23 12
43 32 33 13
41 34 24 44
Alte întrebări interesante
Limba română,
8 ani în urmă
Limba română,
8 ani în urmă
Matematică,
8 ani în urmă
Fizică,
8 ani în urmă
Limba română,
8 ani în urmă
Matematică,
9 ani în urmă
Franceza,
9 ani în urmă