Hola buenas, acabo de aprender el manejo de estructuras en lenguaje C, y me gustaría que me dierais vuestra opinión sobre un código
La función de esto seria saber que cosas hago y no debería hacer, o que no hago y debería de hacer, mas que nada para no ir cogiendo vicios que no sean adecuados
Muchas gracias a todos.
Acabo de ver el post
http://foro.elhacker.net/programacion_cc/lo_que_no_hay_que_hacer_en_cc_nivel_basico-t277729.0.html tendre que echarle un ojo jeje
#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, año;
};
//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;
printf("\nFecha de nacimiento\n"); scanf("%d", &fecha1.
dia); scanf("%d", &fecha1.
mes); scanf("%d", &fecha1.
año
);
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
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.
año
); 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;
}