從鍵盤讀入n個整數放入陣列中,編寫函式compactintegers,刪除陣列中所有值為0的元素,其後元素向陣列首端移動。注意,compactintegers函式需要接受陣列及其元素個數作為引數,函式返回值應為刪除操作執行後陣列的新元素個數。輸出刪除後陣列中元素的個數並依次輸出陣列元素。
樣例輸入: (輸入格式說明:5為輸入資料的個數,3 4 0 0 2 是以空格隔開的5個整數)
5 3 4 0 0 2
樣例輸出:(輸出格式說明:3為非零資料的個數,3 4 2 是以空格隔開的3個非零整數)
3 3 4 2
樣例輸入:
7 0 0 7 0 0 9 0
樣例輸出:
2 7 9
樣例輸入:
3 0 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函式需要接受陣列及其元素個數作為引數,函式返回值應為刪除操作執行後陣列的新元素個數。輸出刪除後陣列中元素的個數並依次輸出陣列元素。樣例輸入 輸...