c语言删除数组的负数
时间: 2024-09-13 13:07:41 浏览: 35
在C语言中,删除数组中的负数通常指的是将数组中的非负数向前移动,以覆盖掉所有的负数,并在数组的末尾留下一个或多个未使用的元素,这取决于删除的负数的数量。下面是一个简单的例子,演示了如何删除一个整型数组中的所有负数:
```c
#include <stdio.h>
void removeNegatives(int arr[], int *size) {
int writeIndex = 0;
for (int i = 0; i < *size; i++) {
if (arr[i] >= 0) {
arr[writeIndex++] = arr[i];
}
}
*size = writeIndex; // 更新数组的有效大小
}
int main() {
int arr[] = {-3, 4, -5, 6, -7, 8, 9};
int size = sizeof(arr) / sizeof(arr[0]);
removeNegatives(arr, &size);
for (int i = 0; i < size; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
在这个例子中,`removeNegatives`函数接收一个整型数组和一个指向数组大小的指针。它遍历数组,并将非负数复制到数组的开始位置,用`writeIndex`来跟踪下一个应该被写入的非负数的位置。遍历完成后,它通过将`writeIndex`的值赋给`size`指针所指向的变量来更新数组的有效大小。