顺序存储顺序表,删除给定值s与t之间的所有元素

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 void del(int *a, int &n, int s, int t)
 4 {
 5     int i = 0; 
 6     while(i < n && a[i] < s) ++i;    //寻找值 == s 的元素 
 7     
 8     int j = i;
 9     while(j < n && a[j] <= t) ++j;    //寻找值 > t 的第一个元素 
10     
11     for(; j < n; ++j, ++i)
12         a[i] = a[j];        //前移,填补被删元素位置 
13     
14     n = i;//带回元素个数
15 }
16 
17 int main()
18 {
19     int arr[] = {1,2,3,4,5,6,7,8,9,10};
20     int n = sizeof(arr)/sizeof(int);
21     
22     del (arr,n,4,7);
23     
24     for(int i=0; i<n; ++i){
25         printf("%d ",arr[i]);
26     }
27     return 0;
28 }

猜你喜欢

转载自www.cnblogs.com/GoldenEllipsis/p/11258792.html
今日推荐