Problema, pasar lista a funcion
Publicado por klamptax (1 intervención) el 23/05/2007 20:00:38
Bueno, a ver si yo me explico y vosotros me entedeis, que yo la verdad que soy mas bien novatillo en esto...
Bueno, lo que yo pretendo conseguir es pasarle una lista a una función, hasta aquí bien, vamos la teoria, ahora la viene la practica...
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
main()
{
int contador=0;
int aux;
typedef struct elemento ELEMENTO;
struct elemento{
char nombre[15];
char apellido[15];
char curso[4];
char pagado[1];
ELEMENTO *sig;
};
char nom[0];
char ape[0];
char cur[0];
char pag[0];
int insertar(ELEMENTO ** a);
ELEMENTO *milista=NULL;
ELEMENTO *nodo1=NULL;
nodo1=(ELEMENTO *) malloc(sizeof(ELEMENTO));
ELEMENTO *nodo2=NULL;
nodo2=(ELEMENTO *) malloc(sizeof(ELEMENTO));
ELEMENTO *nodo3=NULL;
nodo3=(ELEMENTO *) malloc(sizeof(ELEMENTO));
ELEMENTO *nodo4=NULL;
nodo4=(ELEMENTO *) malloc(sizeof(ELEMENTO));
milista=NULL;
printf("Que desea hacer?\n1\tIntroducir un alumno\n2\tVer el total de alumnos\t\t");
scanf("%d",&aux);
if(aux==1)
{
printf("\nIntroduzca el nombre del alumno\t\t");
scanf("%s",&nom[0]);
printf("\nIntroduzca el apellido del alumno\t");
scanf("%s",&ape[0]);
printf("\nIntroduzca el curso del alumno\t\t");
scanf("%s",&cur[0]);
printf("\nIndique si ha pagado o no el alumno\t");
scanf("%s",&pag[0]);
printf("\n\n%s, %s, %s, %s",nom,ape,cur,pag);
contador++;
insertar (&milista);
}
else
{
if(aux==2)
{
/* total(contador);*/
}
}
getch();
}
int insertar(ELEMENTO ** a) /* linea 71*/
{
switch(aux1)
{
case 1:
milista=nodo1;
nodo1->sig=NULL;
nodo1->nombre=aux1;
nodo1->apellido=aux2;
nodo1->curso=aux3;
nodo1->pagado=aux4;
break;
case 2:
milista=nodo2;
nodo2->sig=nodo1;
nodo2->nombre=aux1;
nodo2->apellido=aux2;
nodo2->curso=aux3;
nodo2->pagado=aux4;
break;
case 3:
milista=nodo3;
nodo3->sig=nodo2;
nodo3->nombre=aux1;
nodo3->apellido=aux2;
nodo3->curso=aux3;
nodo3->pagado=aux4;
break;
}
}
me da errores:
en la cabecera de la funcion, linea 71
`ELEMENTO' was not declared in this scope
`a' was not declared in this scope
y otro error mu raro, en linea 72:
expected `,' or `;' before '{' token
gracias de antemano
Bueno, lo que yo pretendo conseguir es pasarle una lista a una función, hasta aquí bien, vamos la teoria, ahora la viene la practica...
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
main()
{
int contador=0;
int aux;
typedef struct elemento ELEMENTO;
struct elemento{
char nombre[15];
char apellido[15];
char curso[4];
char pagado[1];
ELEMENTO *sig;
};
char nom[0];
char ape[0];
char cur[0];
char pag[0];
int insertar(ELEMENTO ** a);
ELEMENTO *milista=NULL;
ELEMENTO *nodo1=NULL;
nodo1=(ELEMENTO *) malloc(sizeof(ELEMENTO));
ELEMENTO *nodo2=NULL;
nodo2=(ELEMENTO *) malloc(sizeof(ELEMENTO));
ELEMENTO *nodo3=NULL;
nodo3=(ELEMENTO *) malloc(sizeof(ELEMENTO));
ELEMENTO *nodo4=NULL;
nodo4=(ELEMENTO *) malloc(sizeof(ELEMENTO));
milista=NULL;
printf("Que desea hacer?\n1\tIntroducir un alumno\n2\tVer el total de alumnos\t\t");
scanf("%d",&aux);
if(aux==1)
{
printf("\nIntroduzca el nombre del alumno\t\t");
scanf("%s",&nom[0]);
printf("\nIntroduzca el apellido del alumno\t");
scanf("%s",&ape[0]);
printf("\nIntroduzca el curso del alumno\t\t");
scanf("%s",&cur[0]);
printf("\nIndique si ha pagado o no el alumno\t");
scanf("%s",&pag[0]);
printf("\n\n%s, %s, %s, %s",nom,ape,cur,pag);
contador++;
insertar (&milista);
}
else
{
if(aux==2)
{
/* total(contador);*/
}
}
getch();
}
int insertar(ELEMENTO ** a) /* linea 71*/
{
switch(aux1)
{
case 1:
milista=nodo1;
nodo1->sig=NULL;
nodo1->nombre=aux1;
nodo1->apellido=aux2;
nodo1->curso=aux3;
nodo1->pagado=aux4;
break;
case 2:
milista=nodo2;
nodo2->sig=nodo1;
nodo2->nombre=aux1;
nodo2->apellido=aux2;
nodo2->curso=aux3;
nodo2->pagado=aux4;
break;
case 3:
milista=nodo3;
nodo3->sig=nodo2;
nodo3->nombre=aux1;
nodo3->apellido=aux2;
nodo3->curso=aux3;
nodo3->pagado=aux4;
break;
}
}
me da errores:
en la cabecera de la funcion, linea 71
`ELEMENTO' was not declared in this scope
`a' was not declared in this scope
y otro error mu raro, en linea 72:
expected `,' or `;' before '{' token
gracias de antemano
Valora esta pregunta


0