核心思想:
用两个指针从首元素开始向后走,一个是begin,一个是end
然后begin向后走如果不是哪个数,则赋值给end所在的元素
如果是那个数,则begin向后走
#includeint main() { int arr[] = { 2,3,5,6,7,2,2,5,2,9,2,4,3,2 }; int sz = sizeof(arr) / sizeof(arr[0]); int k = 2; //删除的值为2 int begin = 0; int end = 0; while (begin < sz) { while (arr[begin] != k) { arr[end] = arr[begin]; end++; begin++; } begin++; } printf("end=%dn", end); //end为删除后的数组元素个数 int i = 0; for (i = 0; i < end ; i++) { if (arr[i] != k) printf("%d ", arr[i]); } return 0; }



