代码是冒泡排序由大到小,如图片这样
运行结果:
如果把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
请问一下,这是什么原因,谢谢!
代码是冒泡排序由大到小,如图片这样
如果把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] 所以越界了。