Llegar a un foro y decir... no me funciona mi programa... ahí os lo dejo... es lo que he dicho otras veces, ese tipo de trabajos cuestan dinero.
Si quieres que el código sea un poco más legible edita tu mensaje y la etiqueta que engloba el código modifícala para que quede tal que [ code = c ] pero sin espacios.
Después estaría genial que tabulases el texto para poder seguir un poco la traza de forma visual sin dejarse la vista.
Tener funciones cuyo nombre no dice nada como puntoa, puntob, puntoc es de las peores decisiones que puedes tomar a la hora de programar... ese nombre no aporta nada y tener que recordar después de unas semanas lo que hacía esa función puede significar recorrer un tortuoso camino.
No uses fflush( stdin ) no es portable y puede dar muuuchos problemas, hay otras formas más elegantes y usables de limpiar el buffer de entrada... por ejemplo ( no digo que tengas que usar esta, ni que sea la mejor, ni la única )
Código
Al fin y al cabo el buffer de entrada tiene la misma estructura en memoria que un archivo.
Más cosas, el primer elemento de un array es siempre el que tiene índice 0, por lo que las líneas
Código
Están necesariamente mal ( y puede que haya más ).
Ah si, y aprende a usar el depurador... un programador que no sabe depurar un programa es como un arquitecto que no sabe diseñar planos.