优化上述代码,注意不要自行给出数组,这个数组应该是人为可输入的
时间: 2024-02-09 18:11:06 浏览: 54
以下是优化后的代码,可以让用户输入整数数组,并将所有 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[100], numsSize, i;
printf("请输入整数数组的长度:");
scanf("%d", &numsSize);
printf("请输入整数数组:");
for (i = 0; i < numsSize; i++) {
scanf("%d", &nums[i]);
}
moveZeros(nums, numsSize);
printf("移动后的数组为:");
for (i = 0; i < numsSize; i++) {
printf("%d ", nums[i]);
}
return 0;
}
```
在优化后的代码中,我们首先定义了一个整数数组 `nums`,大小为100,以便用户可以输入最多100个整数。接下来,我们使用 `scanf` 函数分别输入数组的长度和元素值。然后,我们调用 `moveZeros` 函数来实现将0元素移动到末尾的功能。最后,我们使用一个循环打印出移动后的数组元素,以验证程序的正确性。
阅读全文