演算法訓練 刪除陣列零元素

2021-12-29 21:40:13 字數 733 閱讀 9752

從鍵盤讀入n個整數放入陣列中,編寫函式compactintegers,刪除陣列中所有值為0的元素,其後元素向陣列首端移動。注意,compactintegers函式需要接受陣列及其元素個數作為引數,函式返回值應為刪除操作執行後陣列的新元素個數。輸出刪除後陣列中元素的個數並依次輸出陣列元素。

樣例輸入: (輸入格式說明:5為輸入資料的個數,3 4 0 0 2 是以空格隔開的5個整數)

53 4 0 0 2

樣例輸出:(輸出格式說明:3為非零資料的個數,3 4 2 是以空格隔開的3個非零整數)

33 4 2

樣例輸入:

70 0 7 0 0 9 0

樣例輸出:

27 9

樣例輸入:

30 0 0

樣例輸出:

0#include

int comp(int *a,int n)

n--;

i--;}}

return n;

}int main()

資料結構沒怎麼學,確實傷。刪除個元素,搞得都這麼慢,好有很多要加強的呢。

這個題主要核心是這個

for(i = 0;i < n;i++)

n--;

i--;

}}首先,要注意的是 j < n-1 這個減一不能少 ,因為,最後j+1 是最後乙個元素的,所以,j到n-2就可以了。其次,後面那個i–也不可以丟,每次刪減元素之後,還要看看剛才當前元素被覆蓋之後的元素是否也是零。好了,就這樣~

演算法訓練 刪除陣列零元素

從鍵盤讀入n個整數放入陣列中,編寫函式compactintegers,刪除陣列中所有值為0的元素,其後元素向陣列首端移動。注意,compactintegers函式需要接受陣列及其元素個數作為引數,函式返回值應為刪除操作執行後陣列的新元素個數。輸出刪除後陣列中元素的個數並依次輸出陣列元素。樣例輸入 輸...

演算法訓練 刪除陣列零元素

從鍵盤讀入n個整數放入陣列中,編寫函式compactintegers,刪除陣列中所有值為0的元素,其後元素向陣列首端移動。注意,compactintegers函式需要接受陣列及其元素個數作為引數,函式返回值應為刪除操作執行後陣列的新元素個數。輸出刪除後陣列中元素的個數並依次輸出陣列元素。樣例輸入 輸...

演算法訓練 刪除陣列零元素

從鍵盤讀入n個整數放入陣列中,編寫函式compactintegers,刪除陣列中所有值為0的元素,其後元素向陣列首端移動。注意,compactintegers函式需要接受陣列及其元素個數作為引數,函式返回值應為刪除操作執行後陣列的新元素個數。輸出刪除後陣列中元素的個數並依次輸出陣列元素。樣例輸入 輸...