第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

如下,請(qǐng)問(wèn)遞歸冒泡法去對(duì)1維數(shù)組排序,為什么最后得不到這個(gè)數(shù)組?

如下,請(qǐng)問(wèn)遞歸冒泡法去對(duì)1維數(shù)組排序,為什么最后得不到這個(gè)數(shù)組?

蕭十郎 2022-04-15 15:11:51
#include <array.au3>Dim $a[10]=[1,2,3,4,5,6,7,8,9,10]$a=_sort($a)_ArrayDisplay($a)Func _sort($array) $t="End" For $i = 1 to UBound($array)-1 If $array[$i] > $array[$i-1] Then $t=$array[$i-1] $array[$i-1]=$array[$i] $array[$i]=$t EndIf Next If $t="End" Then Return($array) EndIf _sort($array)EndFunc
查看完整描述

1 回答

?
呼喚遠(yuǎn)方

TA貢獻(xiàn)1856條經(jīng)驗(yàn) 獲得超11個(gè)贊

利用調(diào)試方法,把$a=_sort($a)后的_ArrayDisplay($a)這句修改為:


If IsArray($a) Then    _ArrayDisplay($a)Else    MsgBox(0,"",$a)EndIf

可以看到返回后的$a不是數(shù)組,彈出的對(duì)話框顯示值為0,這說(shuō)明_sort函數(shù)不能將數(shù)組正確返回。

這是因?yàn)楹瘮?shù)默認(rèn)是傳值而不是傳址,傳值即意味著傳入的變量不能被修改。傳值方式下,數(shù)組$array只是$a的一個(gè)拷貝,$array在函數(shù)的地址空間內(nèi),函數(shù)返回此空間就釋放了,原$a的值不受影響。

修改建議就是,使用ByRef改為傳址方式。傳址方式下,$array直接指向$a的地址空間,這樣允許傳入的變量被函數(shù)直接修改。函數(shù)直接return即可,無(wú)需返回任何值。


#include <array.au3>Local $a[10] = [12345678910]_sort($a)_ArrayDisplay($a) Func _sort(ByRef $array)    $t = "End"    For $i = 1 To UBound($array) - 1        If $array[$i] > $array[$i - 1] Then            $t = $array[$i - 1]            $array[$i - 1] = $array[$i]            $array[$i] = $t        EndIf    Next    If $t == "End" Then Return    _sort($array)EndFunc   ;==>_sort


查看完整回答
反對(duì) 回復(fù) 2022-04-19
  • 1 回答
  • 0 關(guān)注
  • 163 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)