Antes he de decir que he empezado hace una semana y aun no tengo mucha idea de la programación en c pero lo intento.
Por más que busco no encuentro el/los errores en las lineas que me dice el compilador, lo mas seguro es que sea por mi ignorancia.
Este es el código:
// ejstruct.c---------------------Práctica de structs anidados-----------------------------------------------
#include <stdio.h>
struct fecha
{
unsigned int dia, mes, anyo;
};
struct persona
{
char nombre[20];
unsigned int edad;
int altura;
int peso;
struct fecha fec;
};
struct persona-empleado
{
struct persona unapersona;
unsigned int salario;
unsigned int horas_por_semana;
};
// Prototipos de funciones
void entrada(struct persona-empleado *p);
void muestra(struct persona-empleado up);
void main()
{
// define una variable persona-empleado
struct persona-empleado p;
// llamada a entrada() transmitiendo la direccion
entrada(&p);
//salida de los datos almacenados
muestra(p);
}
void entrada(struct persona-empleado *p)
{
printf("nIntroduzca su nombre: "); gets(p
->unapersona.
nombre); printf(" introduzca su edad: "); scanf("%d", &p
->unapersona.
edad); printf("Introduzca su fecha de nacimiento: "); scanf("%d %d %d", &p
->unapersona.
fec.
dia, &p
->unapersona.
fec.
mes, &p
->unapersona.
fec.
anyo); printf("Introduzca su salario: "); scanf("%d", &p
->salario
); printf("Introduzca numero de horas: "); scanf("%d", &p
->horas_por_semana
); }
void muestra(struct persona-empleado up)
{
puts("nntDatos de un empleado"); puts("nnt_____________________"); printf("Nombre: %s n",up.
unapersona.
nombre); printf("Edad: %d n",up.
unapersona.
edad); printf("fecha de nacimiento: %d-%d-%dn", up.
unapersona.
fec.
dia, up.
unapersona.
fec.
mes, up.
unapersona.
fec.
anyo); printf("Altura: %d n", up.
unapersona.
altura); printf("Peso: %d n", up.
unapersona.
peso); printf("Numero de horas: %d n", up.
horas_por_semana); }
Aparecen muchos errores al intentar compilar:
hector@hector-laptop:~/C$ gcc -o ejstruct ejstruct.c
ejstruct.c:17: error: expected identifier or ‘(’ before ‘-’ token
ejstruct.c:26: error: expected ‘;’, ‘,’ or ‘)’ before ‘-’ token
ejstruct.c:27: error: expected ‘;’, ‘,’ or ‘)’ before ‘-’ token
ejstruct.c: In function ‘main’:
ejstruct.c:33: error: expected identifier or ‘(’ before ‘-’ token
ejstruct.c:36: error: ‘p’ undeclared (first use in this function)
ejstruct.c:36: error: (Each undeclared identifier is reported only once
ejstruct.c:36: error: for each function it appears in.)
ejstruct.c: At top level:
ejstruct.c:42: error: expected ‘;’, ‘,’ or ‘)’ before ‘-’ token
ejstruct.c:56: error: expected ‘;’, ‘,’ or ‘)’ before ‘-’ token
Por si es de interes el ejemplo es de un libro de Joyanes.
Mi S.O es Ubuntu 10.04.
Gracias de antemano =D