Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: traviatØ en 23 Octubre 2012, 17:23 pm



Título: [Pequeña Ayuda] Programa que evalua a una chica segun su edad, tet4s y mas
Publicado por: traviatØ en 23 Octubre 2012, 17:23 pm
Hola  ;D , sucede que estaba practicando algo de C, escribi un codigo, me compila bien y todo pero al llegar a cierta parte del programa me dice "El Programa a dejado de funcionar" y se cierra, utilizo DevC++ como ide y compilador, este es el codigo

Código
  1. #include <stdio.h>
  2.  
  3. // Prueba de typedef y pasar una estructura completa a una funcion por valor
  4. typedef struct chica
  5. {
  6.       char *nombre;
  7.       int edad;
  8.       float tetas;
  9.       char *contextura;
  10. } Chica;
  11.  
  12. float Promedio(Chica);
  13.  
  14. int main()
  15. {
  16.    Chica Nueva;
  17.  
  18.    printf("Ingrese Nombre de la chica: ");
  19.    scanf("%s", &Nueva.nombre);
  20.    printf("\nIngrese Edad: ");
  21.    scanf("%d", &Nueva.edad);
  22.    printf("\nIngrese tamaño (talla) de las tetas (en decimales): ");
  23.    scanf("%f", &Nueva.tetas);
  24.    printf("\nIngrese contextura: ");
  25.    scanf("%s", &Nueva.contextura);
  26.  
  27.    printf("\n* * * * El Promedio de %s es: %.2f * * * *", Nueva.nombre, Promedio(Nueva)); //Esta linea no se ejecuta o falla
  28.    scanf("%s", &Nueva.contextura);//Instruccion para evitar que se cierre el programa
  29.  
  30.  
  31. }
  32.  
  33. float Promedio(Chica Candidata)
  34. {
  35.      float Promedio = 0;
  36.      if(Candidata.edad>=16 && Candidata.edad<=26)
  37.      {
  38.      Promedio = Promedio + 35;
  39.      }
  40.      else if(Candidata.edad>=12 && Candidata.edad <=15)
  41.      {
  42.      Promedio = Promedio + 15.7;
  43.      }
  44.      else if (Candidata.edad<=11 && Candidata.edad>=40)
  45.      {
  46.      Promedio = Promedio + 5.4;
  47.      }
  48.      else
  49.      {
  50.      Promedio = Promedio + 2.3;
  51.      }
  52.  
  53.      if(Candidata.tetas>=36 && Candidata.tetas>=40)
  54.      {
  55.      Promedio = Promedio + 35;
  56.      }
  57.      else if( Candidata.tetas<=35 && Candidata.tetas>=32)
  58.      {
  59.      Promedio = Promedio +15.7;
  60.      }
  61.      else
  62.      {
  63.      Promedio = Promedio + 5.3;
  64.      }
  65.  
  66.  
  67.      if(Candidata.contextura == "delgada" || Candidata.contextura == "flaca" || Candidata.contextura == "al pelo")
  68.      {
  69.      Promedio = Promedio + 30;
  70.      }
  71.      else if( Candidata.contextura == "gorda")
  72.      {
  73.      Promedio = Promedio - 2;
  74.      }
  75.      else
  76.      {
  77.      Promedio = Promedio + 20.7;
  78.      }
  79.  
  80.  
  81.      return Promedio;
  82. }
  83.  

Saludos


Título: Re: [Pequeña Ayuda] Programa que evalua a una chica segun su edad, tet4s y mas
Publicado por: satu en 23 Octubre 2012, 18:48 pm
Hola!!

Tienes que reservar memoria para nombre y para contextura, y después liberarla.

Y las cadenas de caracteres no se comparan con ==, se utiliza strcmp (http://www.cplusplus.com/reference/clibrary/cstring/strcmp/)

Saludos