Pues a mí sí me funciona aunque la salida es un poco fea (todo seguido)... Esta es la salida que he tenido yo:
¿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