elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Ayuda con estructuras anidadas
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda con estructuras anidadas  (Leído 1,824 veces)
mari2diaz

Desconectado Desconectado

Mensajes: 24


Ver Perfil
Ayuda con estructuras anidadas
« en: 20 Julio 2018, 00:50 am »

Cuando estoy introduciendo los datos me dice programa dejo de funcionar, si alguien puede ver mi error y decirme por favor
Código
  1. /* Se desea registrar una estructura Persona_Empleado que contenga como miembros los datos de una
  2. persona empleado que a su vez tenga los datos de la fecha de nacimiento. En el programa se muestra
  3. el uso de la estructura, se define una función para dar entrada a los datos de la estructura y otra
  4. función para dar salida a los datos de una estructura persona. A la función de entrada se transmite
  5. por dirección (&p) la variable estructura, por lo que el argumento correspondiente tiene que ser un
  6. Ipuntero (*p) y el acceso a los campos se hace con el selector -> */
  7.  
  8. #include<stdio.h>
  9.  
  10. struct fecha{
  11. int dia, mes, año;
  12. };
  13.  
  14. struct persona{
  15. char nombre[20];
  16. int edad;
  17. int altura;
  18. int peso;
  19. struct fecha f;
  20. };
  21.  
  22. struct persona_empleado{
  23. struct persona unapersona;
  24. int salario;
  25. int horas_por_semana;
  26. };
  27.  
  28. /* Prototipo de funciones */
  29.  
  30. void entrada(struct persona_empleado *p);
  31. void salida(struct persona_empleado up);
  32.  
  33. void main(){
  34.  
  35. /* Define una variable persona_empleado */
  36. struct persona_empleado p;
  37.  
  38. /* Llamada a entrada() transmitiendo la direccion */
  39.    entrada(&p);
  40.  
  41.    /* Salida de los datos almacenados */
  42.    salida(p) ;
  43.  
  44. }
  45.  
  46. void entrada(struct persona_empleado *p){
  47.  
  48. printf("\nIntroduzca su nombre: ");
  49. gets(p->unapersona.nombre);
  50.  
  51. printf("Introduzca su edad: ");
  52. scanf("%d", p->unapersona.edad);
  53.  
  54.  
  55. printf("Introduzca su altura: ");
  56. scanf("%d", p->unapersona.altura);
  57.  
  58. printf("Introduzca su peso: ");
  59. scanf("%d", p->unapersona.peso);
  60.  
  61. printf("Introduzca su fecha de nacimiento: ");
  62. scanf("%d %d %d", p->unapersona.f.dia,
  63.    p->unapersona.f.mes,
  64. p->unapersona.f.año);
  65.  
  66. printf("Introduzca su salario: ");
  67. scanf("%d", p->salario);
  68.  
  69. printf("Introduzca numero de horas");
  70. scanf("%d", p->horas_por_semana);
  71.  
  72. }
  73.  
  74. void salida(struct persona_empleado up){
  75. printf("\n\n\tDatos de un Empleado");
  76. printf("\n\n\t--------------------");
  77. printf("Nombre: %s\n", up.unapersona.nombre);
  78. printf("Edad: %d\n", up.unapersona.edad);
  79. printf("Fecha de nacimiento: %d-%d-%d", up.unapersona.f.dia,
  80.    up.unapersona.f.mes,
  81. up.unapersona.f.año);
  82. printf("Altura: %d\n", up.unapersona.altura);
  83. printf("Peso: %d\n", up.unapersona.peso);
  84. printf("Salario: %d\n", up.salario);
  85. printf("Numero de horas: %d\n", up.horas_por_semana);
  86. }
  87.  


« Última modificación: 20 Julio 2018, 01:05 am por mari2diaz » En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Ayuda con estructuras anidadas
« Respuesta #1 en: 20 Julio 2018, 00:53 am »

puedes indicar en que necesitas ayuda? no sabemos así sin más.... explica en todo detalle errores y dudas


En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
mari2diaz

Desconectado Desconectado

Mensajes: 24


Ver Perfil
Re: Ayuda con estructuras anidadas
« Respuesta #2 en: 20 Julio 2018, 00:55 am »

cuando pide la edad e introduzco el dato me dice programa dejo de funcionar
En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Ayuda con estructuras anidadas
« Respuesta #3 en: 20 Julio 2018, 01:07 am »

tienes multiples de errores...

main siempre debe ser int y retornar 0 si todo fue bien... algunos compiladores soportan void, pero no está en el standard

para los nombres de las variables no se usan caracteres no ascii como la "ñ" porque no es standard y muchos compiladores no lo soportan

Código:
scanf("%d", p->unapersona.edad);

esto te dará un error de segmentación de memoria (el que tienes ahorita) porque eso lleva & por delante para poder acceder a su contenido
Código:
scanf("%d", &p->unapersona.edad);

En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayuda con borrado en estructuras anidadas
Programación C/C++
JHodges 8 3,392 Último mensaje 11 Junio 2015, 04:24 am
por rir3760
[Ayuda] Estructuras anidadas, registro. Lenguaje C « 1 2 »
Programación C/C++
neron991 11 9,615 Último mensaje 9 Julio 2015, 10:07 am
por mester
Estructuras anidadas en lenguaje C. -
Programación C/C++
NOB2014 3 4,076 Último mensaje 5 Febrero 2017, 18:42 pm
por ivancea96
Estructuras Anidadas en C
Programación C/C++
Ghio97 5 2,397 Último mensaje 4 Septiembre 2019, 10:22 am
por MAFUS
Estructuras Anidadas, dudas
Programación C/C++
mari2diaz 1 1,971 Último mensaje 9 Febrero 2020, 00:16 am
por ivancea96
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines