gracias a las sugerencias y ayuda dada, modifico mi publicacion con el code ya arreglado y funcional. saludos
Código
#include <stdio.h> #include <windows.h> #include <conio.h> /* Escriba un programa en lenguaje C que realice las siguientes tareas: 1).- Leer entrada de "N" números enteros positivos mayor que cero (SOLO MAYOR QUE CERO, NO IGUAL O MENOR QUE CERO). (LISTO) 2).- Usar el método de ordenamiento de inserción, de tal forma que los números impares ocurran o se escriban antes de los pares en el vector 3).- Ordenar los pares en forma ascendente y los impares en forma descendente. (LISTO) 4).- Usar el método de búsqueda para hallar un numero o elemento "A" a través del método de búsqueda SECUENCIAL introducido por teclado. MOSTRAR SU POSICIÓN. (LISTO) CONSIDERACIONES: 1) Si no hay números pares leídos ordenar descendentes. (LISTO) 2) si no hay números impares leídos ordenar ascendente (LISTO) 3) si hay números Pares/impares ordenar según el PUNTO N° 3 ANTES MENCIONADO (LISTO) */ //prototipo de funcion ordenamiento void ordenar_impares_descendentes(int vector[], int elementos);//CONSIDERACION NUMERO 1 void ordenar_pares_ascendentes(int vector[], int elementos);//CONSIDERACION NUMERO 2 void ordenar_pares_impares(int vector[], int elementos);//CONSIDERACION NUMERO 3 void busqueda_secuencial(int vector[], int elementos); //PUNTO NUMERO 4 //inicia main int main() { //PEDIMOS LA CANTIDAD DE NUMEROS QUE DESEAMOS GUARDAR EN EL VECTOR printf("cuantos elementos desea almacenar? "); int* v,elementos; scanf("%d",&elementos); /* Reservar memoria para almacenar n enteros */ v = (int*)malloc(elementos * sizeof(int)); //UN VECTOR QUE TENDRA LAS DIMENCIONES DE LOS NUMEROS A ALMACENAR /* Verificamos que la asignación se haya realizado correctamente */ if (v== NULL) { /* Error al intentar reservar memoria */ } //CONTINUAMOS A LLENAR EL VECTOR YA DECLARADO printf("\nIngrese los valores de su lista"); int valor_temporal, par=0, impar=0, n; for(n=0;n<elementos;) { printf("\n Ingrese el dato %d: ",(n+1)); scanf("%d",&valor_temporal); //COMPROBAMOS QUE EL DIGITO ES MAYOR A CERO if(valor_temporal>0) { v[n]=valor_temporal;//almacenamos el digito n++; //avanzamos de posicion if(valor_temporal%2==0)//comprobamos si es par para mas adelante realizar la operacion necesaria { par=1; } else //caso contrario es impar { impar=1; } } else { printf("\nIntroduzca un numero mayor a cero"); } } //MOSTRAMOS AL OPERADOR QUE LOS NUMEROS SON ALMACENADOS EN EL ORDEN QUE FUERON INTRODUCIDOS printf("\nlos numeros introducidos son:"); for(int n=0;n<elementos;n++) { printf("\n dato %d es %d", (n+1), v[n]); } //PROCEDEMOS A REALIZAR LAS OPERACIONES NECESARIAS EN BASE A SI EXISTEN PARES, IMPARES O AMBOS EN EL VECTOR if(par==1 && impar==1) { //funcion de pares e impares ordenar_pares_impares(v,elementos); } else if(par==1 && impar==0) { //funcion de pares ascendentes ordenar_pares_ascendentes(v,elementos); } else if(par==0 && impar==1) { //funcion de impares descendentes ordenar_impares_descendentes(v,elementos); } free (v); system("pause"); return 0; } //FUNCION PARA ORDENAR DE MANERA ASCENDENTE EL VECTOR EN CASO DE QUE SOLO HAYAN PARES void ordenar_pares_ascendentes(int vector[], int elementos) { int i,j,v; for (i = 1; i < elementos; i++) { v = vector[i]; j = i - 1; while (j >= 0 && vector[j] > v) { vector[j + 1] = vector[j]; j--; } vector[j + 1] = v; } printf("\n\nel vector par ordenado de forma ascendente es: "); //imprimimos el vector con su respectivo ordenamiento for(int n=0;n<elementos;n++) { printf("\n dato %d es %d", (n+1), vector[n]); } char letra; printf("\ndesea buscar un elemento en el vector?\n presione s para SI y n para NO: "); letra=getch(); if (letra =='s') { busqueda_secuencial(vector,elementos); } } //FUNCION PARA ORDENAR DE MANERA DSECENDENTE EL VECTOR EN CASO DE QUE SOLO HAYAN IMPARES void ordenar_impares_descendentes(int vector[], int elementos) { int i, j, t; for (i=1; i<elementos; i++) { j=i; t=vector[j]; while (j>0 && vector[j-1]<t)//NOTESE QUE SOLO SE NECESITA CAMBIAR UN SIGNO EN ESTE CONDICIONAL PARA QUE SEA DESCENDENTE { vector[j]=vector[j-1]; j--; } vector[j]=t; } printf("\n\nel vector impar ordenado de forma descendente es: "); //imprimimos el vector con su respectivo ordenamiento for(int n=0;n<elementos;n++) { printf("\n dato %d es %d", (n+1), vector[n]); } char letra; printf("\ndesea buscar un elemento en el vector?\n presione s para SI y n para NO: "); letra=getch(); if (letra =='s') { busqueda_secuencial(vector,elementos); } } //FUNCION PARA EL CASO EN QUE EXISTAN PARES E IMPARES EN EL VECTOR //LOS IMPARES SE COLOCARAN PRIMEROS EN EL VECTOR Y DE MANERA DESCENDENTE //LOS PARES SE COLOCARAN EN LAS SIGUIENTES POSICIONES DE MANERA ASCENDENTE void ordenar_pares_impares(int vector[], int elementos) { int i, j, t,n; for (i=1; i<elementos; i++) { j=i; t=vector[j]; if(t%2==0) { while (j>0 && vector[j-1]>t && vector[j-1]%2==0) { vector[j]=vector[j-1]; j--; } } else { while (j>0 && (vector[j-1]<t || vector[j-1]%2==0)) { vector[j]=vector[j-1]; j--; } } vector[j]=t; } printf("\n\nel vector par-impar ordenado es: "); //imprimimos el vector con su respectivo ordenamiento for(int n=0;n<elementos;n++) { printf("\n dato %d es %d", (n+1), vector[n]); } char letra; printf("\ndesea buscar un elemento en el vector?\n presione s para SI y n para NO: "); letra=getch(); if (letra =='s') { busqueda_secuencial(vector,elementos); } } // BUSQUEDA SECUENCIAL void busqueda_secuencial(int vector[], int elementos) { int encontrar; printf("\nEscriba un numero por favor:"); scanf("%d", &encontrar); printf("\nUsted ingreso %d: ",encontrar); for (int i=0;i<elementos;i++) { if (vector[i] == encontrar) { printf("\nNumero encontrado en la posicion [%d] del vector",(i+1)); } else { printf("\nNumero no encontrado en la posicion [%d] del vector",(i+1)); } } // FIN BUSQUEDA SECUENCIAL }