How to rotate square matrix 90 degrees to the right in VB.NET

1 Answer

0 votes
Imports System
 
Public Class Test
    Public Shared Sub print_matrix(matrix(,) As Integer) 
        For i As Integer = 0 To matrix.GetLength(0) - 1
            For j As Integer = 0 To matrix.GetLength(1) - 1
               Console.Write("{0, 2}", matrix(i, j))
            Next
            Console.WriteLine()
        Next
        Console.WriteLine()
    End Sub
   
    Public Shared Sub rotate_matrix_90_degrees_right(matrix(,) As Integer)  
        Dim len As Integer = matrix.GetLength(0)
        For i As Integer = 0 To matrix.GetLength(0) / 2 - 1
            For j As Integer = i To matrix.GetLength(1) - i - 1 - 1
                Dim tmp As Integer = matrix(i, j) 
                matrix(i, j) = matrix(len - 1 - j, i)
                matrix(len - 1 - j, i) = matrix(len - 1 - i, len - 1 - j)
                matrix(len - 1 - i, len - 1 - j) = matrix(j, len - 1 - i)
                matrix(j, len - 1 - i) = tmp
            Next 
        Next
    End Sub
     
    Public Shared Sub Main()
        Dim matrix(,) As Integer = New Integer(,) { {1, 2, 3}, 
                                                    {4, 5, 6}, 
                                                    {7, 8, 9} }
        rotate_matrix_90_degrees_right(matrix) 
         
        print_matrix(matrix) 
    End Sub
End Class
 
 
 
' run:
' 
' 7 4 1
' 8 5 2
' 9 6 3

 



answered May 19, 2019 by avibootz

Related questions

1 answer 181 views
1 answer 205 views
1 answer 170 views
1 answer 178 views
1 answer 182 views
1 answer 188 views
...