求vb解释

来源:百度知道 编辑:UC知道 时间:2024/06/07 05:18:27
For i = 1 To 9
For j = i + 1 To 10
If a(i) > a(j) Then
t = a(i): a(i) = a(j): a(j) = t '交换位置
End If
Next j
t = a(i): a(i) = a(j): a(j) = t 这句为什么还要把a(j)的值赋给a(i)呢 谢谢

你这个程序是冒泡排序吧?在循环的外部还交换干什么?运行肯定会溢出的!
t = a(i): a(i) = a(j): a(j) = t 这一段是用来交换a(i)和a(j)的,是一个中间变量法。

这是个排序问题
2个数值交换都是采用这种办法。t是临时存放数值的变量,要不数值就会丢失了。

排序啊。因为a(i)和 a(j) 的值要交换啊。所以先把a(i)赋给t,然后a(j)的值赋给a(i),然后t的值赋给a(j),就实现了交换啊。

交换a(j)和a(i)的值啊

这是排序,如果满足条件,就是要交换a(i).a(j)的值,用变量T是中间变量,在两个数相互交换是,不用中间变量,其中的一个数都会丢失,因为C语言中,变量的值遵循新来旧去的原则.所以两数相互交换必须中间变量.