fork download
  1. #include <iostream>
  2. #include <vector>
  3.  
  4. using namespace std;
  5.  
  6. int main() {
  7. // Exemplu de matrice
  8. vector<vector<int>> mt = {
  9. {1, 2, 3, 4},
  10. {5, 6, 7, 8},
  11. {9, 10, 11, 12},
  12. {13, 14, 15, 16}
  13. };
  14.  
  15. int startRow = 2; // Linia de start a submatricei
  16. int startCol = 2; // Coloana de start a submatricei
  17. int size = 2; // Dimensiunea submatricei pătratice
  18.  
  19.  
  20. // Creăm o matrice temporară pentru a stoca submatricea rotită
  21. vector<vector<int>> temp(size, vector<int>(size));
  22.  
  23. // Rotim submatricea
  24. for (int i = 0; i < size; i++) {
  25. for (int j = 0; j < size; j++) {
  26. temp[size - j - 1][i] = mt[startRow + i][startCol + j];
  27. }
  28. }
  29.  
  30. // Copiem submatricea rotită în matricea originală
  31. for (int i = 0; i < size; i++) {
  32. for (int j = 0; j < size; j++) {
  33. mt[startRow + i][startCol + j] = temp[i][j];
  34. }
  35. }
  36.  
  37. cout << "Matricea dupa rotirea submatricei:\n";
  38. for (const auto& row : mt) {
  39. for (int val : row) {
  40. cout << val << ' ';
  41. }
  42. cout << endl;
  43. }
  44.  
  45. return 0;
  46. }
  47.  
Success #stdin #stdout 0.01s 5284KB
stdin
Standard input is empty
stdout
Matricea dupa rotirea submatricei:
1 2 3 4 
5 6 7 8 
9 10 12 16 
13 14 11 15