课程
/后端开发
/C
/C语言入门
为什么不是N-1?
2015-08-26
源自:C语言入门 6-12
正在回答
for(i=N-2;i>=0;i--) { for(j=0;j<=i;j++) {
N=10, N-2=8
i从8开始计算,因为下标从0开始,所以8对应的是倒数第二个元素。
if(score[j]<score[j+1])
当i=N-2=8时,j能取的最后一个值为8,进行的比较是数组中最后两个元素的比较。因为这样的比较是从数组一开始就进行的,所以数组中最小的元素此时已经通过排序位于数组最后的位置,所以下一次进行比较时,i的值减小1,也就是不再与此时数组中最后一个元素(最小值)进行比较。
potacharles 提问者
举报
C语言入门视频教程,带你进入编程世界的必修课-C语言
3 回答降序排序的第一个循环的i=N-2是什么意思
1 回答关于降序排列的!求助
3 回答关于降序排列的求助!
2 回答输出成绩降序排列时有乱码。
4 回答冒泡排序中for(i= N-2)什么意思