亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

這個地方還是有點不太懂

for(i=8; i>=0; i--)

? ? {

? ? ? ? for(j=0;j<=i;j++)

? ? ? ? {

? ? ? ? ? ? if(arr[j]>arr[j+1])? ? ?

求大神來個詳細解答過程? 非常感謝

正在回答

5 回答

我剛開始也不明白,你實在不會的話就像我一樣算算每次的結果就應該清楚了。

第二個for是內循環,外循環循環一次,內循環要好多次。

內循環是從第一個數比較,將最大值一步步轉移到最后。每次轉移到最后,再進行下一次外循環,但是每次循環都會少一個數(因為最大值放后面了),所以i--,到最后就排出來了,這樣你懂了嘛?

1 回復 有任何疑惑可以回復我~

你先把這個數組帶進去運算一下會明朗很多,外循環執行一次,內循環要全部執行

0 回復 有任何疑惑可以回復我~

? 10個人,先讓最高的排到隊尾,相鄰的兩個人兩兩比較一次需要比較9次,最后一對比較的是arr【8】和arr【8+1】,所以里層循環的j<=i中i的初始值是8(在外層循環賦值),這樣一輪比較下來最高的人會進入arr【9】。

? 同理再比較第二輪會讓次高的人排到arr【8】,需比較8次,則需要設置i--;以此類推最會讓大者沉底,小者冒泡。

1 回復 有任何疑惑可以回復我~

第一個for ,是指從頭到尾比較完一趟的整個過程,第二個for ,就是講 這一趟比較的具體步驟,就是兩兩相鄰的數比較,i=8時,第一趟比較開始, j=0,就是說第一趟比較中的第一次,是比較第個2個數和第一個數,之間的大小,以此類推,直到比較完第9個數和第十個數,這時候第一趟大循環完成,也就比較出了最大的個數,這時候arr[9]的值就是最大的。再就開始第二趟比較,第二趟比較,就不需要帶上arr[9]了,只有前9個數比較,所以i--,i=7, 第二趟的第二個for還是從頭開始兩兩比較,最終可以得到arr[8],這個值是這次比較中的最大值??偣矁商搜h下來了,得到了最大值,和第二大的值。后面的循環以此類推。。

4 回復 有任何疑惑可以回復我~
#1

慕瓜4445160

那每次的最大值跑到哪里去了?
2019-07-14 回復 有任何疑惑可以回復我~
#2

啊異人

謝謝你!我看到你這里我才懂的!
2019-09-01 回復 有任何疑惑可以回復我~

循環的嵌套,前面有提過,先外然后內,內循環完了在進行外循環

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
C語言入門
  • 參與學習       927002    人
  • 解答問題       21533    個

C語言入門視頻教程,帶你進入編程世界的必修課-C語言

進入課程

這個地方還是有點不太懂

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號