Código:
Se aceptan sugerencias int main(){ // Nivel 5 ej 13 int i , aux , num2 , j ; int verFal = 0 , sup , inf , mitad; int lista2[10] = {2,4,6,9,7,8,1,0,5,3}; for(i = 0 ; i < 10 ; i++){ for(j = 0 ; j < 10 ; j++){ if(lista2[j] > lista2[j+1]){ aux = lista2[j]; lista2[j] = lista2[j+1]; lista2[j+1] = aux; } } } for(i = 0 ; i < 10 ; i++){ printf("%i ",lista2[i]); } printf("\n\nIngrese un valor : "); // NO PONER ESPACIOS EN "%i" EN SCANF() POR QUE PIDE OTRO NUMERO scanf("%i",&num2); // LIMPIA EL BUFFER DEL TECLADO fflush(stdin); // BUSQUEDA BINARIA inf = 0; sup = 9; while(sup >= inf){ mitad = (sup+inf)/2; if(lista2[mitad] == num2){ verFal = 1; break; } if(lista2[mitad] > num2){ sup = mitad; mitad = (sup+inf)/2; } if(lista2[mitad] < num2){ inf = mitad; mitad = (sup+inf)/2; } } // LA VARIABLE VERFAL HACE LA FUNCION COMO SI FUERA UN VALOR BOOLEANO SI ES 1 ES TRUE SI ES 0 ES FALSE if(verFal == 1){ printf("\nNumero encontrado y su pos es : %i", mitad); }else if(verFal == 0){ printf("\nNumero no encontrado "); } printf("\n"); return 0; }