Hola; cuando una combinación de condiciones no se comparta como uno cree, lo más probable es que se deba a un error al interpretar el orden de precedencia. En este caso debes tener en cuenta que && tiene mayor precedencia que ||. Puedes consultar en:
http://en.cppreference.com/w/cpp/lan...tor_precedence
Por otro lado, poniendo nombres como "anemia" y "hemoglobina", yo aclararía que los datos son figurados, que no guardan ninguna relación con la "anemia" real. Nunca se sabe quién puede leer esto y creer que se trata de información real.