Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Adry89

#1
Pues me quedan estos 5 fallos :

hdrhdrh.c:59: error: incompatible types in assignment
hdrhdrh.c:79: error: incompatible types in assignment
hdrhdrh.c:175: error: incompatible type for argument 1 of `estavacia'
hdrhdrh.c:182: error: incompatible types in assignment
hdrhdrh.c:194: error: incompatible types in return

Littlehorse, la verdad es que soy bastante novata y no entiendo bien lo que has dicho, sería mucho pedir si me poesn lo que queda de código como le harías tu? Gracias.

#include <stdio.h>
#include <stdlib.h>
#define TAM 30
#define TRUE 1
#define FALSE 0

/*declaracion de la cola*/

typedef struct _DATOS
{
    char nombre[20];
    char apellidos[30];
    char telefono[12];
    char movil[12];
    int edad;

}DATOS;

struct nodo
{

DATOS elemento;

struct nodo *siguiente;

};

typedef struct nodo Nodo;

typedef struct
{

Nodo *frente;

Nodo *final;

}Cola;

/*Prototipos de funciones*/

Nodo crearcola(Cola *cola);
Nodo insertar (Cola *cola, DATOS x);
Nodo borrar (Cola *cola);
int estavacia (Cola cola);
DATOS leer ( void );

int main(void)
{

/*Declaracion de variables locales*/

Nodo *lista;
int num;
DATOS dat;
Cola *cola;

/*Algoritmo*/

lista = crearcola (cola);

   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 (cola,dat);
        break;

        case 2 :  borrar (cola);
        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);
}

Nodo crearcola(Cola *cola)

{

cola->frente=cola->final=NULL;

}

/*funcion que inserta el dato en la parte final de la cola*/

Nodo insertar (Cola *cola, DATOS x)

{

Nodo *nuevo;

nuevo=(Nodo*)malloc(sizeof(Nodo));

nuevo->elemento=x;

nuevo->siguiente=NULL;

if(estavacia(*cola))

{

cola->frente=nuevo;

}

else

cola->final->siguiente=nuevo;

cola->final=nuevo;

}

/*elimina el elemento que esta aL frente de la cola*/

Nodo borrar (Cola *cola)

{

Nodo *temp;
Nodo *nuevo;

temp = NULL;

if(!estavacia(cola))

{


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 estavacia (Cola cola)

{
    int resp;

    if (cola.frente == NULL)
    {
        resp = TRUE;
    }
    else
    {
        resp = FALSE;
    }

    return (resp);

}
#2
Muchas gracias a todos por las respuestas. He corregido todo y esto es lo que falla:

hdrhdrh.c:69: error: incompatible types in assignment
hdrhdrh.c:89: error: incompatible type for argument 2 of `insertar'
hdrhdrh.c:89: error: incompatible types in assignment
hdrhdrh.c:185: error: incompatible type for argument 1 of `estavacia'
hdrhdrh.c:192: warning: assignment makes pointer from integer without a cast
hdrhdrh.c:204: error: incompatible types in return

Adjunto el código de nuevo:

#include <stdio.h>
#include <stdlib.h>
#define TAM 30
#define TRUE 1
#define FALSE 0

/*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*/

Nodo crearcola(Cola *cola);
Nodo insertar (Cola *cola, int x);
Nodo borrar (Cola *cola);
int estavacia (Cola cola);
DATOS leer ( void );

int main(void)
{

/*Declaracion de variables locales*/

Nodo *lista;
int num;
DATOS dat;
Cola *cola;

/*Algoritmo*/

lista = crearcola (cola);

   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 (cola,dat);
        break;

        case 2 :  borrar (cola);
        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);
}

Nodo crearcola(Cola *cola)

{

cola->frente=cola->final=NULL;

}

/*funcion que inserta el dato en la parte final de la cola*/

Nodo insertar (Cola *cola, int x)

{

Nodo *nuevo;

nuevo=(Nodo*)malloc(sizeof(Nodo));

nuevo->elemento=x;

nuevo->siguiente=NULL;

if(estavacia(*cola))

{

cola->frente=nuevo;

}

else

cola->final->siguiente=nuevo;

cola->final=nuevo;

}

/*elimina el elemento que esta aL frente de la cola*/

Nodo borrar (Cola *cola)

{

Nodo *temp;
Nodo *nuevo;

temp = NULL;

if(!estavacia(cola))

{


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 estavacia (Cola cola)

{
    int resp;

    if (cola.frente == NULL)
    {
        resp = TRUE;
    }
    else
    {
        resp = FALSE;
    }

    return (resp);

}

#3
Corregido todo eso los fallos azules siguen apareciendo, no tiene nada que ver con lo que has dicho =(
#4
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 =(

#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);

}