Ver Mensaje Individual
  #2 (permalink)  
Antiguo 14/03/2015, 12:32
Avatar de vangodp
vangodp
 
Fecha de Ingreso: octubre-2013
Mensajes: 934
Antigüedad: 10 años, 7 meses
Puntos: 38
Respuesta: No veo el error en programa

Estas diciendo con if(edad==1 && nivel<11 || nivel>15) exactamente:

Si edad es igual a 1 y el nivel es mayor que 11 o.... todo lo demás importa un carajo si el nivel es mayor que 15 XDDD

Con el || quiero decir o.... Ejemplo: O pasa eso o pasa el otro. Lo mismo: O pasa eso || pasa el otro.

Entonces... Si edad==1 y nivel<11 o(||) nivel>15. Si al poner mas de 15 le va importar un pimiento que el nivel sea menor que 11 ya que va pasar que se va cumplir lo que esta después del operador ||. A menos que ambas expresiones sean verdaderas antes del ||.

No se exactamente que es lo que quieres hacer pero me parece que el programa hace lo que estas diciendo que haga, lo que falla es la lógica.

Ademas el do/while lo haría así:
Código C:
Ver original
  1. do {
  2.         printf ( "Introduzca su edad: " );
  3.         scanf ( "%d%*c", &edad );
  4.  
  5.         printf ( "Introduzca su sexo, h o m: " );
  6.         scanf ( "%c%*c", &sexo );
  7.  
  8.         printf ( "Introduzca su nivel de hemoglobina: " );
  9.         scanf ( "%f%*c", &nivel );
  10.        
  11.         comprobar ( edad, sexo, nivel );
  12.  
  13.         printf ( "\n\nQuieres continuar s/n?: " );
  14.         scanf ( "%c%*c", &cont );
  15.        
  16.         getchar();
  17.     } while ( cont != 'n' );