Mira, rasielunderwar, voy a intentar ser lo más educado posible.
En este foro hay una serie de normas, una de ellas, no hacer doble posting, es decir, no postear otra vez después de un post tuyo. Otra, no resucitar temas que lleven un tiempo sin comentarios, como la noticia de 2007 en la que has comentado para aportar nada. Te aconsejo que te leas la normativa de la comunidad, y que la respetes, o te puede traer problemas con moderadores y admins.
Por otro lado, has oído la frase "no digas nada si lo que vas a decir no es más bonito que el silencio"? Se agradece que en la comunidad se aporte, pero en serio, si no ves que tu código (o aquello que vayas a decir) aporta algo, no lo pongas.
Pones C++ cuando piden C, y si bien son casi compatibles, hay cosas que puedes hacer en C++ y NO puedes hacer en C. Usas librerías que están obsoletas, y funciones de las mismas que llegan a considerarse mala costumbre. El siguiente post ilustra bastante sobre el asunto:
http://foro.elhacker.net/programacion_cc/lo_que_no_hay_que_hacer_en_cc_nivel_basico-t277729.0.htmlEstá bien que intentes aportar, pero cuando tus aportes, vía sus defectos o inoportunidad, puedan causar problemas a otros, rompe totalmente con la propia intención de ayudar.
Y por último, pocas veces es conveniente poner el código que desarrolla la solución que busca quien pregunta. Suele ser preferible explicar como se puede llegar a dicha solución, pero si la pones directamente, rompes con el aprendizaje de esa persona, porque puede o no entender lo que tu has puesto, o simplemente memorizarlo, mientras que si llega a su propia solución, óptima o no, habrá aprendido.