import Foundation
// Function to mirror a square matrix across its main diagonal
func mirrorMatrix(_ matrix: inout [[Int]]) {
let n = matrix.count
// Ensure the matrix is square
guard matrix.allSatisfy({ $0.count == n }) else {
print("Error: The matrix must be square.")
return
}
// Swap elements above the diagonal with elements below the diagonal
for i in 0..<n {
for j in i+1..<n {
// Swap matrix[i][j] with matrix[j][i]
let temp = matrix[i][j]
matrix[i][j] = matrix[j][i]
matrix[j][i] = temp
}
}
}
var matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
print("Original Matrix:")
for row in matrix {
print(row)
}
mirrorMatrix(&matrix)
print("\nMirrored Matrix:")
for row in matrix {
print(row)
}
/*
run:
Original Matrix:
[1, 2, 3]
[4, 5, 6]
[7, 8, 9]
Mirrored Matrix:
[1, 4, 7]
[2, 5, 8]
[3, 6, 9]
*/