-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathlistas.c
27 lines (25 loc) · 889 Bytes
/
listas.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <stdio.h>
#include <stdlib.h>
void imprimirLista(int * lista, int largo, char* textoAMostrar){
printf("Los números %s son: ",textoAMostrar);
for (int i = 0; i < largo; i++) {
printf(" %d ", *(lista + i));
}
printf("\n");
}
int filter(int numeros[], int** lista, int (*unCriterio)(int)) {
int cantidadDeElementosFiltrados = 0;
for (int i = 0; i < 10; i++) {
if (unCriterio (numeros[i])) {
cantidadDeElementosFiltrados = cantidadDeElementosFiltrados + 1;
if (cantidadDeElementosFiltrados == 1) {
* lista = (int*)malloc(sizeof(int));
}
else{
* lista = (int *)realloc(*lista, sizeof(int)*cantidadDeElementosFiltrados);
}
* (*lista + cantidadDeElementosFiltrados -1) = numeros[i];
}
}
return cantidadDeElementosFiltrados;
}