這個地方還是有點不太懂
for(i=8; i>=0; i--)
? ? {
? ? ? ? for(j=0;j<=i;j++)
? ? ? ? {
? ? ? ? ? ? if(arr[j]>arr[j+1])? ? ?
求大神來個詳細解答過程? 非常感謝
for(i=8; i>=0; i--)
? ? {
? ? ? ? for(j=0;j<=i;j++)
? ? ? ? {
? ? ? ? ? ? if(arr[j]>arr[j+1])? ? ?
求大神來個詳細解答過程? 非常感謝
2019-05-03
舉報
2019-09-04
我剛開始也不明白,你實在不會的話就像我一樣算算每次的結果就應該清楚了。
第二個for是內循環,外循環循環一次,內循環要好多次。
內循環是從第一個數比較,將最大值一步步轉移到最后。每次轉移到最后,再進行下一次外循環,但是每次循環都會少一個數(因為最大值放后面了),所以i--,到最后就排出來了,這樣你懂了嘛?
2019-08-19
你先把這個數組帶進去運算一下會明朗很多,外循環執行一次,內循環要全部執行
2019-06-10
? 10個人,先讓最高的排到隊尾,相鄰的兩個人兩兩比較一次需要比較9次,最后一對比較的是arr【8】和arr【8+1】,所以里層循環的j<=i中i的初始值是8(在外層循環賦值),這樣一輪比較下來最高的人會進入arr【9】。
? 同理再比較第二輪會讓次高的人排到arr【8】,需比較8次,則需要設置i--;以此類推最會讓大者沉底,小者冒泡。
2019-06-01
第一個for ,是指從頭到尾比較完一趟的整個過程,第二個for ,就是講 這一趟比較的具體步驟,就是兩兩相鄰的數比較,i=8時,第一趟比較開始, j=0,就是說第一趟比較中的第一次,是比較第個2個數和第一個數,之間的大小,以此類推,直到比較完第9個數和第十個數,這時候第一趟大循環完成,也就比較出了最大的個數,這時候arr[9]的值就是最大的。再就開始第二趟比較,第二趟比較,就不需要帶上arr[9]了,只有前9個數比較,所以i--,i=7, 第二趟的第二個for還是從頭開始兩兩比較,最終可以得到arr[8],這個值是這次比較中的最大值??偣矁商搜h下來了,得到了最大值,和第二大的值。后面的循環以此類推。。
2019-05-04
循環的嵌套,前面有提過,先外然后內,內循環完了在進行外循環