用c语言函数编写删除序列表中的偶数
时间: 2024-09-23 09:01:38 浏览: 36
在 C 语言中,如果你想编写一个函数来删除顺序存储的整数列表中的偶数,你可以创建一个辅助函数来检查是否为偶数,然后遍历列表,将奇数移动到新位置并跳过偶数。下面是一个简单的示例:
```c
#include <stdio.h>
// 辅助函数,用于判断一个整数是否为偶数
int is_even(int num) {
return num % 2 == 0;
}
// 删除列表中偶数的主函数
void remove_even_numbers(int *arr, int *end) {
if (*end <= 1 || !is_even(*arr)) { // 如果只有一个元素或者第一个不是偶数,直接返回
return;
}
int *current = arr; // 当前指针
while (current != end) { // 遍历数组
if (!is_even(*current)) { // 如果当前元素不是偶数
*current = *(current + 1); // 将它复制到下一个位置
}
current++; // 移动指针到下一个元素
}
}
int main() {
int nums[] = {1, 2, 3, 4, 5, 6};
int len = sizeof(nums) / sizeof(nums[0]);
int *last = nums + len;
remove_even_numbers(nums, last);
printf("Updated array with odd numbers only: ");
for (int i = 0; i < len; i++) {
printf("%d ", nums[i]);
}
printf("\n");
return 0;
}
```
在这个例子中,`remove_even_numbers` 函数会删除 `nums` 数组中的所有偶数。请注意,这种方法不会改变原数组的大小,只保留了奇数。
阅读全文