算法提高 6-9刪除數組中的0元素
時間限制:1.0s 內存限制:512.0MB
編寫函數CompactIntegers,刪除數組中所有值為0的元素,其后元素向數組首端移動。注意,CompactIntegers函數需要接收數組及其元素個數作為參數,函數返回值應為刪除操作執行后數組的新元素個數。
輸入時首先讀入數組長度,再依次讀入每個元素。
將調用此函數后得到的數組和函數返回值輸出。
輸入時首先讀入數組長度,再依次讀入每個元素。
將調用此函數后得到的數組和函數返回值輸出。
樣例輸入
7
2 0 4 3 0 0 5
2 0 4 3 0 0 5
樣例輸出
2 4 3 5
4
4
類似這題碰到不止兩次了。
1 #include<stdio.h> 2 void Del(int a[],int N){ 3 int j=0; 4 for(int i=0;i<N;i++){ 5 if(a[i]!=0){ 6 a[j]=a[i]; 7 j++; 8 } 9 } 10 for(int i=0;i<j;i++){ 11 printf("%d ",a[i]); 12 } 13 printf("\n%d",j); 14 } 15 int main(){ 16 int N; 17 scanf("%d",&N); 18 int a[N];//定義長度為N的一維數組 19 //輸入數組 20 for(int i=0; i<N; i++){//錄入數組a 21 scanf("%d",&a[i]); 22 } 23 Del(a,N); 24 }
