用c语言写一段提取数组内的每一个值进行判断后存入一个新的数组
时间: 2024-12-17 19:26:06 浏览: 2
在C语言中,你可以创建一个函数来提取数组内的每个元素并根据条件进行判断后再存入新的数组。这里是一个简单的例子,我们假设有一个整型数组,我们要判断每个元素是否大于0,并将结果存入新数组:
```c
#include <stdio.h>
// 函数原型声明
int* filter_array(int *source_array, int length, int *destination_array);
int main() {
int source[5] = {1, -2, 3, 0, 4}; // 源数组
int destination[5]; // 目标数组
int i;
int filtered_length = filter_array(source, sizeof(source) / sizeof(source[0]), destination);
// 打印过滤后的数组
printf("Filtered array (positive elements only): ");
for (i = 0; i < filtered_length; i++) {
printf("%d ", destination[i]);
}
return 0;
}
// 提取并判断数组元素的函数
int* filter_array(int *source, int length, int *dest) {
int j = 0; // 新数组的索引
for (int i = 0; i < length; i++) {
if (source[i] > 0) {
dest[j++] = source[i];
}
}
dest[j] = 0; // 添加空位终止数组
return dest + j; // 返回新数组的实际结束位置
}
```
在这个例子中,`filter_array`函数接受源数组、数组长度和目标数组作为输入。它遍历源数组,如果找到正数就将其复制到目标数组,直到所有正数都被处理完。最后返回指向新数组结尾的位置,这样就可以避免在主程序中手动更新数组大小。
阅读全文