Duda sobre mi programa en C

Iniciado por juan310, 17 Septiembre 2018, 03:36 AM

0 Miembros y 1 Visitante están viendo este tema.

juan310

Hola que tal he hecho este programa y tengo una duda sobre como hacer algo

Código (cpp) [Seleccionar]
#include <stdlib.h>
#include <stdio.h>

int main()
{
  int i,edad,mujeres25=0,hombres18=0,individuos18=0;
  float altura;
  char sexo;
  for(i=0;i<40;i++)
  {
   printf("ingrese la edad:\t\n");
   scanf("%d", &edad);
   if(edad==0)
     break;
         printf("ingrese la altura:\t\n");
         scanf("%f",&altura);

         printf("ingrese su genero:\t\n");
         fflush(stdin);
         sexo=getchar();
      if(sexo== 'f' && edad > 25)
      mujeres25++;
      if(altura>170)
      {
          individuos18++;
      }
      else if (sexo=='m' && edad < 18)
       hombres18++;
      else if (edad>18 && altura>170)
       individuos18++;
 }
printf("mujeres mayores que 25: %.2f \t\n  varones menores a 25: %.2f\t\n individuos mayores que 18 y altura mayor a 170cm: %.2f\t\n ",(float)mujeres25 * 100/i,(float)hombres18*100/i,(float)individuos18*100/i);
system("pause");
return 0;
}


lo que quiero hacer es que cuando se ponga un numero con coma aparezca un mensaje printf que diga "ERROR" o algo asi pero he intentado varios lugares y nose donde y como ponerlo.

gracias de antemano

srWhiteSkull

Entonces pienso que deberías tomar la entrada como una cadena y no como numérica. Luego buscas la coma en la cadena por ejemplo recorriéndola con un bucle y después convertir la cadena en un tipo numérico en caso de no encontrar la coma.

http://c.conclase.net/librerias/?ansifun=atoi

jca1

#2
Buenas, si lo que quieres es por si ponen una altura en cm te paso este codigo


#include <stdlib.h>
#include <stdio.h>

int main()
{
  int i,edad,mujeresMayores25=0,hombresMenores25=0,individuos18=0,aux;
  float altura;
  char sexo;
  for(i=0;i<5;i++)
  {
   printf("ingrese la edad:\t\n");
   scanf("%d", &edad);
   if(edad==0)
     break;
         printf("ingrese la altura:\t\n");
         scanf("%f",&altura);
         aux=altura;
         if(aux!=altura)
         {
             altura=altura*100;

         }

         printf("ingrese su genero:\t\n");
         fflush(stdin);
         sexo=getchar();
      if(sexo== 'f' && edad > 25)
      mujeresMayores25++;
      else{
      if(sexo=='m' && edad < 25){
       hombresMenores25++;
      }
      if(altura>170 && edad>18)
      {
          individuos18++;
      }
 }
  }
printf("mujeres mayores que 25: %.2f \t\n  varones menores a 25: %.2f\t\n individuos mayores que 18 y altura mayor a 170cm: %.2f\t\n ",(float)mujeresMayores25 * 100/i,(float)hombresMenores25*100/i,(float)individuos18*100/i);
system("pause");
return 0;
}


Fijate tambien que estaban mal las condiciones para lo que querias mostrar. la altura la puede poner en metros o en centimetros, y la guarda como unidad minima en centimetros.
espero que te sirva, saludos