
用vb.net编程,建立一个m行n列的矩阵,找出其中最小的元素所在的行和列,并输出该值及其行、列位置
Dima(,),m,n,i,j,min,mini,minjAsIntegerm=InputBox("行数m=")n=InputBox("列数n=")Fori=0Tom-1...
Dim a(,), m, n, i, j, min, mini, minj As Integer
m = InputBox("行数m=")
n = InputBox("列数n=")
For i = 0 To m - 1
For j = 0 To n - 1
min = a(0, 0)
a(i, j) = Int(Rnd() * 100)
If a(i, j) <= min Then
min = a(i, j)
mini = i
minj = j
End If
Next
Next
MsgBox("最小的元素是" + min + "他所在的行是" + mini + "他所在的列是" + minj)
End Sub 这样对不对,求正解 展开
m = InputBox("行数m=")
n = InputBox("列数n=")
For i = 0 To m - 1
For j = 0 To n - 1
min = a(0, 0)
a(i, j) = Int(Rnd() * 100)
If a(i, j) <= min Then
min = a(i, j)
mini = i
minj = j
End If
Next
Next
MsgBox("最小的元素是" + min + "他所在的行是" + mini + "他所在的列是" + minj)
End Sub 这样对不对,求正解 展开
1个回答
展开全部
没错!!
你的算法是:
1.定义三个变量,minValue(放最小值),X(放最小值的X坐标),Y(放最小值的Y坐标)。
2.遍历矩阵。在遍历过程中将最小值放在minValue中,最小值的X坐标放在X中,最小值的Y坐标放在X中。
你的算法是:
1.定义三个变量,minValue(放最小值),X(放最小值的X坐标),Y(放最小值的Y坐标)。
2.遍历矩阵。在遍历过程中将最小值放在minValue中,最小值的X坐标放在X中,最小值的Y坐标放在X中。
追问
调试错误
追答
你好,以下是我运行没问题的代码:
Dim a(1, 1), m, n, i, j, MinValue, XLine, YLine As Integer
m = 3
n = 3
ReDim a(m, n)
Dim temp As Integer = 1
For x As Integer = 0 To 3
For y As Integer = 0 To 3
a(x, y) = temp + 1
temp = temp + 1
Next
Next
MinValue = a(0, 0)
XLine = 0
YLine = 0
For i = 0 To m - 1
For j = 0 To n - 1
If a(i, j) <= MinValue Then
MinValue = a(i, j)
XLine = i
YLine = j
End If
Next
Next
MsgBox("MIN = " & MinValue.ToString() & " XLine = " & XLine.ToString & " YLine= " & YLine.ToString())
你的代码问题点:
1.数组声明有问题。
解答:声明数组时,只有在给定了最大下标才能真正开辟一个内存空间存放数据。在你的代码中没有对数组的大小进行定义,所有没有为a数组分配空间。所以在代码中添加 ReDim a(m, n)。
2.在位min 赋值时,每次循环都进行了这样的操作min = a(0, 0),逻辑错误。所以将min = a(0, 0)操作放到循环之前做一次就可以了。
希望对你能有所帮助@*@
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询