求大佬帮忙看一看,这个排序错在哪里?
vb吧
全部回复
仅看楼主
level 5
求大佬帮忙看一看,这个排序错在哪里?
2020年10月26日 04点10分 1
level 5
孩子快不行了,哪位大佬教教我
2020年10月26日 04点10分 2
level 11
i等于21,越界了
2020年10月26日 04点10分 3
level 5
萌新,有错误请包涵
text2.text=text2.text& a(i) &" "要放在for语句里面吧?
2020年10月26日 04点10分 4
好像也不太行
2020年10月26日 04点10分
level 5
好像还是不太行
2020年10月26日 04点10分 5
数组a的上限是20,而你在代码中却出现了21,所以提示下标溢出
2020年10月26日 05点10分
level 15
3楼是说当i=21时会下标越界,你居然还把循环改成1 To 21[滑稽]
而且从你“不太行”的改法来看,你是想回复3楼的吧?4楼的意思是让你把 Text2.Text = Text2.Text & a(i) & " " 这句上移一行,移到 Next j 和 Next i 之间,但你并没有这样改
虽然前面的For不应该改成1 To 21,但是确实需要改:
For i = 1 To 19
For j = i + 1 To 20
2020年10月26日 05点10分 6
我在查一个东西,当时也没说清[滑稽]
2020年10月26日 05点10分
对了,如果前面要改成循环到19的话(这是排序的正常写法),那么4楼让你移动的那一行语句就不是移动,而是要复制了(循环前后各写一句);如果不改成19,还是20的话,那循环后面就不用再写了,移进去就可以
2020年10月26日 05点10分
level 11
针对你前面的问题,我的意思是
在执行了
For i = 1 to 20 ...... Next
的语句后,此时i的值为21,而你声明的数组边界为1 to 20,所以发生了越界
所以,前面可能省略了一点∞点内容[笑尿]
2020年10月26日 05点10分 7
level 5
嗷嗷
2020年10月26日 06点10分 8
level 5
那这个呢?冒泡排序,我也写不对
2020年10月26日 06点10分 9
level 5
还有这两个顺序查找、二分查找都出错了,孩子快傻了
2020年10月26日 06点10分 10
level 11
2020年10月26日 11点10分 12
太感谢了,谢谢大佬
2020年10月26日 15点10分
1