#include <iostream>
#include <vector>
using std::vector;
using std::cout;
void printMatrix(const vector<vector<int>>& matrix) {
for (const auto& row : matrix) {
for (int element : row) {
cout << element << " ";
}
cout << "\n";
}
}
// Function to mirror the matrix across the main diagonal
void mirrorMatrix(vector<vector<int>>& matrix) {
int size = matrix.size(); // Size of the square matrix
// Swap elements above the diagonal with those below it
for (int i = 0; i < size; i++) {
for (int j = i + 1; j < size; j++) {
std::swap(matrix[i][j], matrix[j][i]);
}
}
}
int main() {
int n = 3;
vector<vector<int>> matrix = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};
// Print the original matrix
cout << "Original Matrix:\n";
printMatrix(matrix);
// Mirror the matrix across the diagonal
mirrorMatrix(matrix);
// Print the mirrored matrix
cout << "Mirrored Matrix:\n";
printMatrix(matrix);
}
/*
run:
Original Matrix:
1 2 3
4 5 6
7 8 9
Mirrored Matrix:
1 4 7
2 5 8
3 6 9
*/