No sé si es este el mejor sitio para decirlo o la forma correcta de hacerlo, pero:
Código:
if (a=5)
// Esto es un error muy común en C sobre todo al principio,
no se esta comparando el valor de a con 5, se le esta
asignando el valor 5 a a y la comparación siempre resulta
cierta ya que 5 es diferente a cero.
Es que no es lo mismo
mayor que que
diferente a.