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 #include <stdio.h> // Prueba de typedef y pasar una estructura completa a una funcion por valor typedef struct chica { char *nombre; int edad; float tetas; char *contextura; } Chica; float Promedio(Chica); int main() { Chica Nueva; printf("Ingrese Nombre de la chica: "); scanf("%s", &Nueva. nombre); scanf("%d", &Nueva. edad); printf("\nIngrese tamaño (talla) de las tetas (en decimales): "); scanf("%f", &Nueva. tetas); printf("\nIngrese contextura: "); scanf("%s", &Nueva. contextura); printf("\n* * * * El Promedio de %s es: %.2f * * * *", Nueva. nombre, Promedio (Nueva )); //Esta linea no se ejecuta o falla scanf("%s", &Nueva. contextura);//Instruccion para evitar que se cierre el programa } float Promedio(Chica Candidata) { float Promedio = 0; if(Candidata.edad>=16 && Candidata.edad<=26) { Promedio = Promedio + 35; } else if(Candidata.edad>=12 && Candidata.edad <=15) { Promedio = Promedio + 15.7; } else if (Candidata.edad<=11 && Candidata.edad>=40) { Promedio = Promedio + 5.4; } else { Promedio = Promedio + 2.3; } if(Candidata.tetas>=36 && Candidata.tetas>=40) { Promedio = Promedio + 35; } else if( Candidata.tetas<=35 && Candidata.tetas>=32) { Promedio = Promedio +15.7; } else { Promedio = Promedio + 5.3; } if(Candidata.contextura == "delgada" || Candidata.contextura == "flaca" || Candidata.contextura == "al pelo") { Promedio = Promedio + 30; } else if( Candidata.contextura == "gorda") { Promedio = Promedio - 2; } else { Promedio = Promedio + 20.7; } return Promedio; }
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
|