【項目2 - 删除數組元素】
del函數的作用是删除數組a中的指定元素x,n為數組a的元素個數。函數的傳回值,為删除元素後的有效元素個數(數組中可能有重複元素)。函數的原型為:
int del (int a[10],int n,int x)
(1)請實作這個函數,并完成測試。
[參考解答]
(2)如果在函數調用時,要求數組中的元素呈升序排列呢?
思路:例如在下面main函數中的測試,删除77時,分三個階段:①先找到77;②跨過若幹個77後,找到了80;③從80開始,将資料逐個地搬到前面合适的位置(“覆寫”了77及随後的位置)。
後記:實際上,對于本項目中涉及問題,利用好這個有序的特征,反倒使處理變得複雜了,同時也沒有帶來效率上的提高——和對于無序數組一樣,都要“掃描”整個數組。但是,這樣的問題如果在工程中,尤其是當n很大時,階段①的工作可以用二分法完成,這是改進思路之一。另外,存儲結構不一定用數組這種順序存儲的結構。總之,這一段程式,作為學習過程中“活動”腦瓜的一個遊戲,玩玩也挺好。