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#include <stdio.h>
#include <stdlib.h>
int comprobar(int edad, char sexo, float nivel){
if(edad==1 && nivel<11 || nivel>15){
return printf("\nTiene anemia, deberia estar entre 11 y 15"); }
else if(edad>1 && edad<=15 && nivel<11.5 || nivel>15.5){
return printf("\nTiene anemia, deberia estar entre 11.5 y 15.5"); }
else if(sexo=='m' && edad>15 && nivel<12 || nivel>16){
return printf("\nTiene anemia, deberia estar entre 12 y 16"); }
else if(sexo=='h' && edad>15 && nivel<14 || nivel>18){
return printf("\nTiene anemia, deberia estar entre 14 y 18"); }
return printf("Usted no tiene anemia");
}
void main(){
int edad;
char sexo, cont;
float nivel;
do{
printf("Introduzca su edad: ");
printf("Introduzca su sexo, h o m: ");
printf("Introduzca su nivel de hemoglobina: ");
comprobar(edad, sexo, nivel);
printf("\nQuieres continuar s/n?: "); }while(cont=!'n');
}