C语言代码,要求实现:给定一个数组 ,将所有 0 移动到数组的最前面,同时保持非零元素的相对顺序,返回并打印数组
时间: 2024-05-13 12:13:42 浏览: 71
python 移动零,给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序
5星 · 资源好评率100%
可以通过双指针的方式实现。定义两个指针i和j,初始时i和j都指向数组首部。然后遍历数组,如果当前元素不是0,就将它赋值给i指向的位置,并将i向后移动一个位置;如果当前元素是0,就跳过不做处理。最后,将i指向的位置及之后的所有元素赋值为0即可。下面是实现代码:
```c
void moveZeros(int* nums, int numsSize){
int i = 0, j = 0;
for(j = 0; j < numsSize; j++){
if(nums[j] != 0){
nums[i] = nums[j];
i++;
}
}
for(; i < numsSize; i++){
nums[i] = 0;
}
for(i = 0; i < numsSize; i++){
printf("%d ", nums[i]);
}
}
```
如果您需要更详细的解释,请随时提问!
阅读全文