Errores que tenias, en C y C++ la letra ñ no la puedes usar en variables y estructuras.
Ya esta todo retocado. Ahora funciona de 10
Ya esta todo retocado. Ahora funciona de 10
Código (c) [Seleccionar]
#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;
printf("Datos personales\n");
printf("Dime tu nombre: ");
fflush(stdin);
gets(nombre1.nombre);
printf("Primer apellido: ");
fflush(stdin);
gets(nombre1.apellido1);
printf("Segundo apellido: ");
fflush(stdin);
gets(nombre1.apellido2);
return nombre1;
}
struct fecha_nacimiento nueva_fecha(){
struct fecha_nacimiento fecha1;
printf("\nFecha de nacimiento\n");
printf("Dia: ");
fflush(stdin);
scanf("%d", &fecha1.dia);
printf("Mes: ");
fflush(stdin);
scanf("%d", &fecha1.mes);
printf("Año: ");
fflush(stdin);
scanf("%d", &fecha1.ano);
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
printf("\nTelefono: ");
fflush(stdin);
scanf("%d",&usuario.telefono);
return usuario;
}
//Funcion que imprime por pantalla los datos
void mostrar_datos(struct datos asignado){
printf("\n\nLos datos que se han introducido son los siguientes:");
printf("\n----------------------------------------------------\n");
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);
printf("Numero de telefono: %d", asignado.telefono);
}
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;
}