Ya esta todo retocado. Ahora funciona de 10
Código
#include<stdio.h> //Estructuras para los datos personales struct nombre_completo{ //Datos personales: Nombre Apellido Apellido char nombre[40], apellido1[40], apellido2[40]; }; struct fecha_nacimiento{ int dia, mes, ano; }; //Estructura en la que se almacenaran todos los datos de una persona struct datos{ //Datos personales (estructura externa) struct nombre_completo persona; //Fecha de nacimiento (estructura externa) struct fecha_nacimiento nacimiento; long telefono; }; //Funciones de asignacion de datos struct nombre_completo nuevo_nombre(){ struct nombre_completo nombre1; return nombre1; } struct fecha_nacimiento nueva_fecha(){ struct fecha_nacimiento fecha1; return fecha1; } //Funcion que asigna todos los datos personales por medio de llamadas a las otras funciones struct datos nuevos_datos(){ struct datos usuario; //Llamada a la funcion que asigna Nombre y apellidos usuario.persona=nuevo_nombre(); //Llamada a la funcion que asigna la fecha de nacimiento usuario.nacimiento=nueva_fecha(); //Peticion del telefono al usuario return usuario; } //Funcion que imprime por pantalla los datos void mostrar_datos(struct datos asignado){ printf("Nombre completo: %s %s %s\n", asignado.persona.nombre, asignado.persona.apellido1, asignado.persona.apellido2); printf("Fecha de nacimiento: %d/%d/%d\n", asignado.nacimiento.dia, asignado.nacimiento.mes, asignado.nacimiento.ano); } int main(){ struct datos persona1; //Asignacion de datos a persona1 persona1=nuevos_datos(); //LLamada a la funcion que muestra los datos por pantalla mostrar_datos(persona1); return 0; }