编写一个C语言程序,对输入的一个整数数组 nums,将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。
时间: 2024-02-09 14:11:05 浏览: 74
python 移动零,给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序
5星 · 资源好评率100%
以下是一个简单的C语言程序,实现了将数组中的0元素移动到末尾的功能:
```c
#include <stdio.h>
void moveZeros(int* nums, int numsSize) {
int i, j = 0;
for (i = 0; i < numsSize; i++) {
if (nums[i] != 0) {
nums[j++] = nums[i];
}
}
while (j < numsSize) {
nums[j++] = 0;
}
}
int main() {
int nums[] = {0, 1, 0, 3, 12};
int numsSize = sizeof(nums) / sizeof(int);
moveZeros(nums, numsSize);
for (int i = 0; i < numsSize; i++) {
printf("%d ", nums[i]);
}
return 0;
}
```
该程序中,我们首先定义了一个 `moveZeros` 函数,接收两个参数:一个整数指针数组 `nums` 和数组长度 `numsSize`。函数中我们使用了两个指针 `i` 和 `j`,遍历整个数组,当找到非0元素时,将其移动到数组前面,并更新 `j` 指针的位置。最后,我们使用一个循环将剩余的位置设置为0,即实现了将0元素移动到数组末尾的功能。
在 `main` 函数中,我们定义了一个整数数组 `nums`,并调用 `moveZeros` 函数来实现将0元素移动到末尾。最后,我们使用一个循环打印出移动后的数组元素,以验证程序的正确性。
阅读全文