在写VB代码时,排从大到小的正整数,为什么说我下标越界了,如何修改?

 我来答
Yuqi_Tan

2014-12-25 · TA获得超过8.9万个赞
知道大有可为答主
回答量:9918
采纳率:93%
帮助的人:3454万
展开全部
目测你的程序有四处错误,其中两项属于严重错误:
1、严重错误:<下标越界>,错误点:for j=i+1 to n+1,改正:for j=i+1 to n。
2、严重错误:<下标越界>,错误点:for i=0 to n,改正:for i=1 to n。
3、普通错误:<算法错误>,错误点:前面排序时的一个for i=1 to n,改正:for i=1 to n-1。
4、普通错误:<变量没有声明>,错误点:变量 i 没有声明,改正:前面加上dim i as integer。
程序不全,没有发现其他错误。
追问

为什么前后的整数不一,而且不是按照从大到小顺序排列呢?

追答
你刚刚发来的程序中还有两项错误:
1、严重错误:,错误点:if a(i)>a(j) then,修改:if a(i),错误点:t=i,修改:t=a(i)。分析:此处错误会把顺序号错误地当成数组元素,造成数组元素被偷梁换柱,打印出来之后已经没有任何意义,也不是排序后应有的结果。

暂未发现其他错误,有问题请留言。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
邓杰江下
2014-12-25 · TA获得超过192个赞
知道小有建树答主
回答量:346
采纳率:0%
帮助的人:92.2万
展开全部
j 的值应该是for j = i+1 to n ,不是n+1
把排列后的数字打印出来时,下标是1 to n
追问
但是为什么代码不是按从大到小的顺序排列呢
追答
for i = 1 to n-1
for j = i +1 to n
if a(i) <a(j) then
t =a(i)
a(i) =a(j)
a(j) = t
end if
next j
next i
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式