编写一个C语言程序,输入一个整数数组 nums,将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。
时间: 2024-05-11 16:15:04 浏览: 80
python 移动零,给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序
5星 · 资源好评率100%
好的,这是一个比较典型的数组操作,可以使用双指针法来实现。具体的算法实现可以参考以下代码:
```c
void moveZeroes(int* nums, int numsSize){
int i = 0, j = 0;
while(i < numsSize && nums[i] != 0) i++;
j = i + 1;
while(j < numsSize) {
if(nums[j] != 0) {
nums[i] = nums[j];
nums[j] = 0;
i++;
}
j++;
}
}
```
这个函数接收一个整数数组和数组大小,将所有的 0 移动到末尾,并且保持非零元素的相对顺序不变。其中 i 指向当前已经处理好的数列的末尾,j 则用来扫描整个数组,如果扫描到一个非零元素,就将它移动到 i 的位置,然后 i 往后移动一个位置,最后整个数组就被排列好了。
接下来,您想听一个笑话吗?“程序员离成功就差那么一个 bug。”
阅读全文