不可思议的运行结果!
遇到一不可思议的问题!!!第一段代码:
*
* 插入排序算法练习
*
*Dimension AA(20) &&数组名 有大小写之分;使用[]和()都行!
*Declare AA(20) &&也可以。Declare和 Dimension 一样,就和EDIT命令和change命令相同一样。重定义数组,对应的元素值不变化!
**由于FoXPro数组的下标,一般是从1开始的,所有不能使用数组来完成 插入排序,当然Asort函数就可以直接排序数组。
input '请输入第1个数值型数据:' to AA1
for ii=2 to 10 && 10个数组排序,n=10
ii_c=transform(ii)
input '请输入第'+ii_c+'个数值型数据:' to AA&ii_c
AA0 = AA&ii_c
jj=ii-1
jj_c=transform(jj)
do while .t. &&为什么用 do while AA0 < AA&jj_c 出现逻辑错误呢?
if AA0 < AA&jj_c && transform(0) 就是返回 '0'
jj1_c=transform(jj+1)
AA&jj1_c = AA&jj_c
jj=jj-1
jj_c=transform(jj)
else
exit
endif
enddo
jj1_c=transform(jj+1)
AA&jj1_c = AA0
endfor
for ii=1 to 10
ii_c=transform(ii)
? 'AA'+ii_c+':'+transform(AA&ii_c)
endfor
第二段代码:
*
* 插入排序算法编程练习
*
*Dimension AA(20) &&数组名 有大小写之分;使用[]和()都行!
*Declare AA(20) &&也可以。Declare和 Dimension 一样,就和EDIT命令和change命令相同一样。重定义数组,对应的元素值不变化!
**由于FoXPro数组的下标,一般是从1开始的,所有不能使用数组来完成 插入排序,当然Asort函数就可以直接排序数组。
input '请输入第1个数值型数据:' to AA1
for ii=2 to 10 && 10个数组排序,n=10
ii_c=transform(ii)
input '请输入第'+ii_c+'个数值型数据:' to AA&ii_c
AA0 = AA&ii_c
jj=ii-1
jj_c=transform(jj)
do while AA0 < AA&jj_c &&为什么 do while AA0 < AA&jj_c 出现逻辑错误呢? transform(0) 就是返回 '0'
jj1_c=transform(jj+1)
AA&jj1_c = AA&jj_c
jj=jj-1
jj_c=transform(jj)
enddo
jj1_c=transform(jj+1)
AA&jj1_c = AA0
endfor
for ii=1 to 10
ii_c=transform(ii)
? 'AA'+ii_c+':'+transform(AA&ii_c)
endfor
第一段代码和第二段代码运行结果应该是相同的呀! 为什么第二段代码出错啊!不可思议,求高手解答!! 谢谢!!!