c语言中冒泡问题。为什么冒泡排序出来的有一个是乱码,而另一种算法排序(第三张图)出来的是好的?

如题所述

冒泡排序的外层循环是for(i=0; i<n-1; i++),内层循环是for(j=0; j<n-1-i; j++),每次比较的两个元素是a[j]和a[j+1]。你的n=5,所以外层循环应该是for(i=0; i<4; i++),内层循环应该是for(j=0; j<4-i; j++)。追问

请问多一个1为什么会乱码?

追答

因为数组越界,你的写法当外层循环i=0时内层循环会持续到j=4,此时a[j+1]也就是a[5]越界。

温馨提示:答案为网友推荐,仅供参考
相似回答