Creo que el problema está en la función aleatoria de la librería time.h que estoy empleando, dado que no genera números diferentes para cada componente del vector. Cada vez que ejecuto el programa crea un número distinto que se copia en todas las componentes. Sin embargo, está dentro de un bucle for, luego no llego a entender cuál es el problema. Adjunto mi código a continuación. Gracias por su tiempo:
Código
#include<stdio.h> #include<conio.h> #include<time.h> #include<stdlib.h> #define MAX 100 int rellena_vector (int v[] ); void search_even (int v[MAX], int p[MAX], int cont_pares); void search_odd (int v[MAX], int im[MAX], int cont_imp); int main(){ int v[100], p[MAX], im[MAX]; int cont_pares; int cont_imp; int i; cont_pares=rellena_vector (v); search_even (v, p, cont_pares); cont_imp=MAX-cont_pares; search_odd (v,im, cont_imp); return 0; } int rellena_vector (int v[] ){ int r=0, i, cont_pares=0; for (i=0;i<100; i++) { v[i]=r; if (v[i]%2==0) {cont_pares++; } } return cont_pares; } void search_even (int v[MAX], int p[MAX], int cont_pares) { int i, k=0; for (i=0;i<MAX;i++){ if (v[i]%2==0) { p[k]=v[i]; k++; } } for (k=0;k<cont_pares;k++) { } } void search_odd (int v[MAX], int im[MAX], int cont_imp) { int i, k=0; for (i=0;i<MAX;i++){ if (v[i]%2==1) { im[k]=v[i]; k++; } } for (k=0;k<cont_imp;k++) { } }
Engel Lex: Los códigos deben usar etiquetas GeSHi