Tienes cinco errores que haya visto:
- En el primer bucle for la j ha de ser < 9 para no salirte del rango
- La condición del while correcta es (sup > inf) o (inf <= sup), lo que prefieras
- Cuando acualizas sup, sup = mitad -1
- Cuando actualizas inf, inf = mitad +1
También, aunque no te afecte a la funcionalidad del código en cada iteración del while que no implica encontrar la solución calculas dos veces el valor del medio. Es suficiente con tenerlo una vez al principio del while.
Saludos.