Ver Mensaje Individual
  #1 (permalink)  
Antiguo 14/03/2015, 11:06
IVICP3
 
Fecha de Ingreso: febrero-2015
Mensajes: 61
Antigüedad: 9 años, 11 meses
Puntos: 0
No veo el error en programa

En este programilla sencillo para mirar si tienes anemia o no.

Tengo 2 problemillas.

1-No hace el bucle d0/while cuando quiero continuar.
2-Cuanto pongo mas de 15 años, da igual el sexo, y pongo que el nivel es mas de 15, me entra en el primer if, NO SE PORQUE, si tengo edad==1.


Algo pasa en estas dos cosas, algo muy tonto, pero no las veo, parece lo tipico que estas 1 hora sin poder compilar y te falta una comilla o un parentesis.


Código C:
Ver original
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4.  
  5.  
  6. int comprobar(int edad, char sexo, float nivel){
  7.    
  8.     if(edad==1 && nivel<11 || nivel>15){
  9.         return printf("\nTiene anemia, deberia estar entre 11 y 15");
  10.     }
  11.  
  12.     else if(edad>1 && edad<=15 && nivel<11.5 || nivel>15.5){
  13.         return printf("\nTiene anemia, deberia estar entre 11.5 y 15.5");
  14.     }
  15.  
  16.     else if(sexo=='m' && edad>15 && nivel<12 || nivel>16){
  17.         return printf("\nTiene anemia, deberia estar entre 12 y 16");
  18.     }
  19.  
  20.     else if(sexo=='h' && edad>15 && nivel<14 || nivel>18){
  21.         return printf("\nTiene anemia, deberia estar entre 14 y 18");
  22.     }
  23.  
  24.     return printf("Usted no tiene anemia");
  25.    
  26. }
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38. void main(){
  39.     int edad;
  40.     char sexo, cont;
  41.     float nivel;
  42.  
  43.     do{
  44.     printf("Introduzca su edad: ");
  45.     scanf("%d", &edad);
  46.     fflush(stdin);
  47.  
  48.     printf("Introduzca su sexo, h o m: ");
  49.     scanf("%c", &sexo);
  50.     fflush(stdin);
  51.  
  52.     printf("Introduzca su nivel de hemoglobina: ");
  53.     scanf("%f", &nivel);
  54.  
  55.     comprobar(edad, sexo, nivel);
  56.  
  57.     printf("\n");
  58.     printf("\nQuieres continuar s/n?: ");
  59.     scanf("%c", &cont);
  60.     getchar();
  61.     }while(cont=!'n');
  62.  
  63.    
  64. }