在使用Dev-C++编译时抛出3个错误。

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>

struct agenda{
    char nombre [50];
    char telefono[25];
    char email[50];
    }
    struct nodo{
        struct agenda dato;
        struct nodo *proximo;
        }

    struct nodo *nuevonodo
           int colavacia(struct nodo *)
    struct nodo *creacola (struct nodo *, struct agenda);

    void mostrar (struct nodo *);

    void main()
    {
        struct nodo *pri=NULL, *ult=NULL;
        struct agenda x;

        printf ("ingrese nombre: ");
        gets(x.nombre);
        while (strcmpi(x.nombre, "fin"))

    {
        printf ("ingrese telefono: ");
        gets (x.telefono);
        printf ("ingrese mail: ");
        gets(x.mail);
        ult=creacola(ult,x);
        if (pri==NULL) pri=ult; //si es la 1 pasada pongo en pri el valor del primer nodo
        printf ("ingrese nombre: ");
        gets(x.nombre);
    }
    if (colavacia(pri)==1)
    {
    printf ("No se ingresaron registros");getch();
    }
    else mostrar(pri);

    }
    struct nodo *nuevonodo()
    {
        struct nodo *p;
        p=(struct nodo *)malloc(sizeof(struc nodo));
        if(p==NULL)
        {
            printf ("memoria ram llena");
            getch();
            exit(0);
        }
        return p;
    }

    struct nodo *creacola(struct nodo *ult, struct agenda x)
    {
        struct nodo *p;
        p=nuevonodo();
        (*P).dato=x;
        (*p).proximo=NULL;
        if(ult!=NULL) (*ult).proximo=p; //si hay nodo anterior en prox pongo la direccion del nodo actual
        return p;
    }

    int colavacia(struct nodo *pri)
    {
        if(pri==NULL) return 1;
        else
        return 0;
    }

    void mostrar (struct nodo *pri)
    {
        struct nodo *aux;

    while(pri!=NULL)
    {
        printf("Nombre: %s - telefono: %s - Mail: %s \n",
        pri->dato.nombre,pri->dato.telefono,pri->dato.mail);
        aux=pri;
        pri=(*pri).proximo;
        free(aux);
    }
    getch();
}

最佳答案

必须用分号结束struct定义:

struct agenda{
    char nombre [50];
    char telefono[25];
    char email[50];
}; // <- HERE

同样,对于变量和函数声明:
struct nodo *nuevonodo;
int colavacia(struct nodo *);

main的返回值具有int类型。

关于c - 帮助C语言中的指针,文件和函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5587527/

10-12 17:38