代码是冒泡排序由大到小,如图片这样
如果把int buf[5]={12,2,5,4,11}; 改为int buf[6]={12,2,5,4,11};
就正常输出:
12 2 5 4 11
12 11 5 4 2
请问一下,这是什么原因,谢谢!
因为代码中越界访问了。比如第25行,i=0是,j=0,j<n-i即j<5,但for内有j+1,那岂不是访问到了a[4+1]=a[5] 所以越界了。
修改如下,供参考:
以下答案引用自GPT-3大模型,请合理使用:
原因是数组大小为2的时候,排序是从左往右,数组大小为3的时候,排序是从左往右,但是从右往左取数组的时候还是从左往右。