c语言插入排序问题

2025-06-21 15:09:48
推荐回答(1个)
回答1:

for循环第一次j=1的时候,key=a[1]=5,i=1-1=0;while循环内满足了条件后,语句a[i+1]=a[i]执行,结果为a[0+1]=a[0]=10(a[1]被赋值为10了,a[0]的值确实仍为初始值10)。
然后i--,i就变为-1,退出循环。
while循环外的语句a[i+1]=key正是在这里就不多余了,将5赋值给a[0]。
不可以换成a[j-1]=key的。这只是特例。下一次j=2时的情况就只能是a[i+1]=key了。若“换成a[j-1]=key”就错了。