在使用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/