Bueno, pues me da 4 o 5 errores azules de incompatibilidad de tipos sobre todo y no sé que falla, el programa es muy sencillo de 200 líneas...a ver si me podéis ayudar, estoy desesperada =(
Código [Seleccionar]
#include <stdio.h>
#include <stdlib.h>
/*declaracion de la cola*/
typedef struct _DATOS
{
char nombre[20];
char apellidos[30];
char telefono[12];
char movil[12];
int edad;
}DATOS;
struct nodo
{
int elemento;
struct nodo *siguiente;
};
typedef struct nodo Nodo;
typedef struct
{
Nodo *frente;
Nodo *final;
}Cola;
/*Prototipos de funciones*/
void crearcola(Cola *cola);
void insertar (Cola *cola, int x);
int borrar (Cola *cola);
int estavacia (Cola cola);
int main(void)
{
/*Declaracion de variables locales*/
Nodo *lista;
int num;
DATOS dat;
/*Algoritmo*/
lista = crearcola ();
do
{
printf("--------------------------------\n\n");
printf("Bienvenido a la agenda del movil \n\n");
printf("elige una opcion : \n\n");
printf("1.-Añadir. \n");
printf("2.-Borrar.\n");
printf("4.-Salir.\n");
printf("Su opcion es: ");
scanf("%d",&num);
switch(num)
{
case 1 : printf("Introduce los valores del dato");
dat = leer ();
lista = insertar (dat, lista);
break;
case 2 : borrar (dat, lista);
break;
case 3 :
break;
default : printf("Error: Introduce un numero del menu");
}
}while(num!=3);
return(0);
}
/*definicion de las funciones*/
DATOS leer ( void )
{
/*Declaracion de variables locales*/
DATOS d;
/*Algoritmo*/
printf("Introduce Nombre: ");
scanf("\n%s", d.nombre);
printf("Introduce Apellido: ");
scanf("\n%s",d.apellidos);
printf("Introduce Telefono: ");
scanf("\n%s",d.telefono);
printf("Introduce Movil: ");
scanf("\n%s",d.movil);
printf("Introduce Edad: ");
scanf("%d",&d.edad);
return(d);
}
void CrearCola(Cola *cola)
{
cola->frente=cola->final=NULL;
}
/*funcion que inserta el dato en la parte final de la cola*/
void insert (Cola *cola, int x)
{
Nodo *nuevo;
nuevo=(Nodo*)malloc(sizeof(Nodo));
nuevo->elemento=x;
nuevo->siguiente=NULL;
if(empty(*cola))
{
cola->frente=nuevo;
}
else
cola->final->siguiente=nuevo;
cola->final=nuevo;
}
/*elimina el elemento que esta aL frente de la cola*/
int remover (Cola *cola)
{
int temp=NULL;
if(!empty(*cola))
{
Nodo *nuevo;
nuevo=cola->frente;
temp=cola->frente->elemento;
cola->frente=cola->frente->siguiente;
free(nuevo);
}
else
printf("ERROR, cola vacia, se puede eliminar\a\n");
return (temp);
}
int empty(Cola cola)
{
return (cola.frente==NULL);
}