Visual Basic中的矩阵

loco3424

所以我有一个任务要创建一个方阵,然后从该行返回行和列的平均值,尽管有一些问题

Dim m, n, i, j As Integer
        Dim A(2, 2) As Integer
        Console.Write(vbLf & "Enter The Matrix Elements any two : ")
        For i = 0 To 2 - 1
            For j = 0 To 2 = 1
                A(i, j) = Convert.ToInt16(Console.ReadLine())
            Next
        Next
        Console.Clear()
        Console.WriteLine(vbLf & "Matrix A : ")
        For i = 0 To 2 - 1
            For j = 0 To 2 - 1
                Console.Write(vbLf & "{0}", A(i, j))
            Next

            Console.WriteLine(" ")
        Next


        Console.WriteLine(vbLf & "Transpose Matrix : ")

        For i = 0 To 2 - 1
            For j = 0 To 2 - 1
                Console.Write(vbLf & "{0}", A(j, i))

            Next

            Console.WriteLine(" ")
        Next
    End Sub

这是我的代码,我知道它应该是一个方矩阵,所以当我也尝试输入值时,它不会让我越过下一个,我该怎么做,是否有人有代码获取它的方矩阵用户的价值观,或者有人可以帮助我

闲置心智

为了使它通用,请使用GetUpperBound()函数确定数组中每个维度的元素个数(但是,因为有一个方矩阵,所以应该相同):

Sub Main()
    Dim size As Integer = 3
    Dim numberWidth As Integer = 2
    Dim format As String = "D" & numberWidth

    Dim A(size - 1, size - 1) As Integer
    For i As Integer = 0 To A.GetUpperBound(0)
        For j As Integer = 0 To A.GetUpperBound(1)
            Console.Write(String.Format("Enter The Matrix Element at A[Row {0}, Col {1}]: ", i, j))
            A(i, j) = Convert.ToInt16(Console.ReadLine())
        Next
    Next

    Console.WriteLine("Matrix A :")
    For i As Integer = 0 To A.GetUpperBound(0)
        Console.Write("| ")
        For j As Integer = 0 To A.GetUpperBound(1)
            Console.Write("{0} ", A(i, j).ToString(format))
        Next
        Console.WriteLine("|")
    Next

    Console.WriteLine("Transpose Matrix :")
    For i As Integer = 0 To A.GetUpperBound(0)
        Console.Write("| ")
        For j As Integer = 0 To A.GetUpperBound(1)
            Console.Write("{0} ", A(j, i).ToString(format))
        Next
        Console.WriteLine("|")
    Next
    Console.ReadLine()
End Sub

输出:

Enter The Matrix Element at A[Row 0, Col 0]: 1
Enter The Matrix Element at A[Row 0, Col 1]: 2
Enter The Matrix Element at A[Row 0, Col 2]: 3
Enter The Matrix Element at A[Row 1, Col 0]: 4
Enter The Matrix Element at A[Row 1, Col 1]: 5
Enter The Matrix Element at A[Row 1, Col 2]: 6
Enter The Matrix Element at A[Row 2, Col 0]: 7
Enter The Matrix Element at A[Row 2, Col 1]: 8
Enter The Matrix Element at A[Row 2, Col 2]: 9
Matrix A :
| 01 02 03 |
| 04 05 06 |
| 07 08 09 |
Transpose Matrix :
| 01 04 07 |
| 02 05 08 |
| 03 06 09 |

这是有关如何计算每个ROW的总和的快速示例:

Dim Total as Integer
For row As Integer = 0 To A.GetUpperBound(0)
    Total = 0 ' reset for each row/column
    For col As Integer = 0 To A.GetUpperBound(1)
        Total = Total + A(row, col)            
    Next
    Console.WriteLine("Row " & row & " total: " & Total)
    ' ... do something else with "Total" here; like compute an average ...
Next

计算列总数的代码将非常相似,只是交换For rowFor col的位置

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章