遍历列表

时间:2019-05-12 08:51:12

标签: sorting ti-basic

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

While C>1 and L1(C)>V

需要成为

While C>0 and 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

1 个答案:

答案 0 :(得分:1)

经过反复试验,我找到了解决方案。诀窍是,如果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

相关问题