在C编程中,可以使用循环结构和条件判断来将补零元素放入数组中。以下是一个示例代码:
#include <stdio.h>
void insertZero(int arr[], int size) {
int i, j;
for (i = 0; i < size; i++) {
if (arr[i] == 0) {
for (j = size - 1; j > i; j--) {
arr[j] = arr[j - 1];
}
arr[i] = 0;
i++; // 跳过刚插入的0元素,避免重复插入
}
}
}
int main() {
int arr[] = {1, 2, 0, 3, 4, 0, 5};
int size = sizeof(arr) / sizeof(arr[0]);
printf("原始数组:");
for (int i = 0; i < size; i++) {
printf("%d ", arr[i]);
}
insertZero(arr, size);
printf("\n补零后的数组:");
for (int i = 0; i < size; i++) {
printf("%d ", arr[i]);
}
return 0;
}
运行结果:
原始数组:1 2 0 3 4 0 5
补零后的数组:1 2 0 0 3 4 0
在这个示例中,我们定义了一个insertZero
函数,该函数接受一个整型数组和数组大小作为参数。函数中使用两个循环,外层循环遍历数组元素,内层循环将0元素插入到数组中。当遇到0元素时,内层循环从数组末尾开始,将每个元素向后移动一位,为0元素腾出位置。然后将0元素插入到当前位置,并通过i++
跳过刚插入的0元素,避免重复插入。
在主函数中,我们定义了一个示例数组arr
,并计算数组大小。然后调用insertZero
函数将补零操作应用于数组。最后,打印补零后的数组。
这种方法可以将补零元素放入数组中,保持其他元素的相对顺序不变。
领取专属 10元无门槛券
手把手带您无忧上云