Sorting 在列表中循环时出现TI基本索引错误

Sorting 在列表中循环时出现TI基本索引错误,sorting,ti-basic,Sorting,Ti Basic,我正试图在TI-84上用TI-BASIC实现插入排序,几乎成功了。我的解决方案对列表中除第一个元素以外的所有元素进行排序。为了正常工作,我相信这一行: 而C>1和L1(C)>V 需要 而C>0和L1(C)>V 然而,这会产生一个错误,因为TI-BASIC显然正在检查L1(0),即使我们在到达那里之前退出了循环 有人能解释一下如何避免这个问题并使代码正常工作吗 这是我的代码: 0->dim(L1 randIntNoRep(1,10,10)->L1 For(I,2,10) L1(

我正试图在TI-84上用TI-BASIC实现插入排序,几乎成功了。我的解决方案对列表中除第一个元素以外的所有元素进行排序。为了正常工作,我相信这一行:

而C>1和L1(C)>V

需要

而C>0和L1(C)>V

然而,这会产生一个错误,因为TI-BASIC显然正在检查
L1(0)
,即使我们在到达那里之前退出了循环

有人能解释一下如何避免这个问题并使代码正常工作吗

这是我的代码:

0->dim(L1
randIntNoRep(1,10,10)->L1
For(I,2,10)
    L1(I)->V
    I-1->C
    While C>1 and L1(C)>V
        L1(C)->L1(C+1)
        C-1->C
    End
    V->L1(C+1)
End
Disp L1

经过反复试验,我找到了解决办法。诀窍在于,如果C=1,则不能在while循环中使用它,而必须在if语句中使用它。将这段代码放在while循环之后:

If C=1 and L1(C)>V
Then
L1(C)->L1(C+1)
C-1->C
End
整件事:

SetUpEditor L1
0->dim(L1
randIntNoRep(1,10,10)->L1
For(I,2,10)
    L1(I)->V
    I-1->C
    While C>1 and L1(C)>V
        L1(C)->L1(C+1)
        C-1->C
    End
    If C=1 and L1(C)>V
    Then
        L1(C)->L1(C+1)
        C-1->C
    End
    V->L1(C+1)
End
Disp L1