Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Fatcat69 en 12 Marzo 2019, 08:39 am



Título: Quisiera saber que error hay en mi código
Publicado por: Fatcat69 en 12 Marzo 2019, 08:39 am
Hola, buenas, queria saber si hay un error en mi código, pues no me funciona bien, he intentado distintos compiladores y siempre después de pedirme el numero, no funciona mas, gracias.

https://paiza.io/projects/e/Ry841n-b0KU206Bp9RiUow?theme=xcode


Título: Re: Quisiera saber que error hay en mi código
Publicado por: K-YreX en 12 Marzo 2019, 09:03 am
Pues a mí sí me funciona aunque la salida es un poco fea (todo seguido)... Esta es la salida que he tenido yo:
Código:
¿Que numero deseas buscar en el arreglo?: 3
Lo siento, tu numero no se encuentra en el arreglo

¿Que numero deseas buscar en el arreglo?: 10
Mediante la Busqueda lineal, tu numero se encuentra en la posicion 2, con 3 comparaciones hechas.Mediante la Busqueda binaria, tu numero se encuentra en la posicion 2

También te digo que ese código podría mejorarse bastante. Para empezar no sé si estás compilando en C o en C++ ya que tienes una mezcla ahí que no puede ser buena... Si estás compilando en C te estará dando de error la librería <iostream> que es de C++, si compilas en C++, funcionar funciona, pero <stdio.h> y <stdbool.h> son de C...

La búsqueda lineal la has complicado más de lo necesario, si al encontrar un valor haces un <return> no hace falta que modifiques la variable <x>, va a funcionar igual... Además los nombres de variables son bastante insignificantes <a, k, jeje, ...>... Mejor nombres como <array, elemento_buscado, longitud_array> que te permiten entender cómo funciona simplemente leyendo.

Tienes dos funciones distintas que hacen exactamente lo mismo, primero usas una y luego otra... (es la búsqueda lineal por si no sabes a cual me refiero).

Si vas a poner dos <return> en el <main>, uno al final del <if> y otro al final del <else>, pon sólo uno al final, fuera de ambos y te ahorras los dos anteriores...

Y ya un par de saltos de línea en las salidas y queda perfecto. Suerte :-X