閱讀以下說(shuō)明和C函數(shù),回答問(wèn)題l和問(wèn)題2,將解答填入答題紙的對(duì)應(yīng)欄內(nèi)。
【說(shuō)明】
對(duì)于具有n個(gè)元素的整型數(shù)組a,需要進(jìn)行的處理是刪除a中所有的值為0的數(shù)組元素,并將a中所有的非O元素按照原順序連續(xù)地存儲(chǔ)在數(shù)組空間的前端。下面分別用函數(shù)CompactArr_v1和CompactArr v2來(lái)實(shí)現(xiàn)上述處理要求,函數(shù)的返回值為非零元素的個(gè)數(shù)。
函數(shù)CompactArr_vl(int a[],int n)的處理思路是:先申請(qǐng)一個(gè)與數(shù)組a的大小相同的動(dòng)態(tài)數(shù)組空間,然后順序掃描數(shù)組a的每一個(gè)元素,將遇到的非O元素依次復(fù)制到動(dòng)態(tài)數(shù)組空間中,最后再將動(dòng)態(tài)數(shù)組中的元素傳回?cái)?shù)組a中。
函數(shù)CompactArr_v2(int a[],int n)的處理思路是:利用下標(biāo)i(初值為0)順序掃描數(shù)組a的每一個(gè)元素,下標(biāo)k(初值為0)表示數(shù)組a中連續(xù)存儲(chǔ)的非0元素的下標(biāo)。掃描時(shí),每遇到一個(gè)數(shù)組元素,i就增1,而遇到非0元素并將其前移后k才增1。
【問(wèn)題1】 (12分)
請(qǐng)根據(jù)說(shuō)明中函數(shù)CompactArr_v1的處理思路填補(bǔ)空缺(1)~(3),根據(jù)CompactArr_v2的處理思路填補(bǔ)空缺(4)。
【問(wèn)題2】(3分)
請(qǐng)說(shuō)明函數(shù)CompactArr vl存在的缺點(diǎn)。