用c语言写算法:在顺序表中删除所有具有给定值x的元素。
时间: 2024-10-17 13:12:13 浏览: 37
在C语言中,删除顺序表(数组或链接列表)中所有具有给定值x的元素,你可以选择遍历整个列表并逐个检查元素。这里是一个简单的例子,假设我们有一个整数数组:
```c
#include <stdio.h>
void delete_elements(int arr[], int size, int x) {
int i, j = 0;
for (i = 0; i < size; i++) {
if (arr[i] != x) { // 如果当前元素不是x,则保留
arr[j++] = arr[i]; // 将元素移动到新的位置
}
}
// 更新数组大小,移除多余的元素
arr[j] = 0; // 或者直接将最后一位设为0,表示数组结束
printf("处理后的数组: ");
for (i = 0; i <= j; i++) {
printf("%d ", arr[i]);
}
}
int main() {
int arr[] = {1, 2, 3, 4, 5, 6, 7, 8, 9};
int size = sizeof(arr) / sizeof(arr[0]);
int x = 5;
delete_elements(arr, size, x);
return 0;
}
```
在这个示例中,`delete_elements`函数会遍历数组,如果找到`x`则跳过,否则将其移到新位置。最后更新数组的长度。
阅读全文