vb 数字升序排列问题

2025-03-09 21:39:31
推荐回答(2个)
回答1:

你的k=k+1有问题,有时可以有时不可以是看数据中最小的数是不是最后一个,因为如果最后一个数据是最小的,即a(5)是最小的,那么第一次if语句结束时k=5,可是你有k=k+1语句,这样下一次的if判断时k就变6了,而a(6)肯定是越界了!
并且你说的有时可以的次数应该很少的,没越界并且排序是正确的情况必须是本身数据已经是从小到大排好了,否则即使没越界数据排序也是有问题的,具体原因自己琢磨一下就知道了,正确答案就像前辈写的那样把if判断那改成:
For i = 1 To n - 1
For j = i + 1 To n
If a(j) < a(i) Then
t = a(i): a(i) = a(j): a(j) = t
end if
Next j
Next i

回答2:

For i = 1 To n - 1
For j = i + 1 To n
If a(j) < a(i) Then
t = a(i): a(i) = a(j): a(j) = t
end if
Next j
Next i