Alguien me podria ayudar con este programa:
#include "stdafx.h"
#include "stdio.h"
#include "conio.h"
#include "string.h"
#include "math.h"
#include "stdlib.h"
#define MAX 20
typedef struct temp
{
char name[MAX];
char telephone[10];
char email[MAX];
char address[MAX];
char zipcode[10];
temp *sig;
} nodo;
nodo* creacion1 ( )
{
nodo *nuevo = NULL;
nuevo = (nodo*)malloc(sizeof(nodo));
return nuevo;
}
nodo* creacion2 ()
{
nodo *inicio= NULL;
nodo *nuevo = creacion1();
inicio= nuevo;
return inicio;
}
nodo* creacion3 ( )
{
nodo *nuevo = creacion1();
nodo *actual = NULL;
actual=nuevo;
return actual;
}
nodo* consulta ()
{
nodo *nuevo= creacion1();
nodo *inicio= creacion2();
nodo *actual = creacion3();
int n;
printf("How many contacts do you want to add in the agenda? ");
scanf("%i",&n);
for(int i=1; i<=n; i++)
{
nuevo = (nodo*)malloc(sizeof(nodo));
actual->sig = nuevo->sig;
actual = inicio;
fflush(stdin);
puts("NAME: ");
gets(nuevo->name);
puts("TELEPHONE: ");
gets(nuevo->telephone);
puts("EMAIL: ");
gets(nuevo->email);
puts("ADDRESS: ");
gets(nuevo->address);
puts("ZIP CODE: ");
gets(nuevo->zipcode);
nuevo->sig=NULL;
}
actual;
return actual;
}
nodo* ordenar ()
{
nodo *nuevo=creacion1();
nodo *inicio=creacion2 ();
nodo *actual=consulta();
nodo *aux = NULL;
nodo *guardar = NULL;
aux=nuevo;
guardar=nuevo;
actual=inicio->sig;
int i = 0;
do
{
i++;
actual = actual->sig;
}
while (actual != NULL);
actual = inicio->sig;
aux = actual->sig;
for (int j = 1; j < i; j++)
{
actual = inicio->sig;
aux = actual->sig;
while(actual->sig != NULL)
{
if (strcmp(actual->name,aux->name) > 0)
{
strcpy(guardar->name, actual->name);
strcpy(guardar->telephone, actual->telephone);
strcpy(guardar->email, actual->email);
strcpy(guardar->address, actual->address);
strcpy(guardar->zipcode, actual->zipcode);
strcpy(actual->name, aux->name);
strcpy(actual->telephone, aux->telephone);
strcpy(actual->email, aux->email);
strcpy(actual->address, aux->address);
strcpy(actual->zipcode, aux->zipcode);
strcpy(aux->name, guardar->name);
strcpy(aux->telephone, guardar->telephone);
strcpy(aux->email, guardar->email);
strcpy(aux->address, guardar->address);
strcpy(aux->zipcode, guardar->zipcode);
}
actual = actual->sig;
aux = actual->sig;
}
}
return actual;
}
nodo* displayordenar()
{
nodo *nuevo=creacion1();
nodo *inicio=creacion2 ();
nodo *actual = ordenar();
actual = inicio->sig;
while(actual != NULL)
{
printf("\n********************");
printf("\n NAME: %s",actual->name);
printf("\n TELEPHONE: %s", actual->telephone);
printf("\n E-MAIL: %s", actual->email);
printf("\n ADDRESS: %s ", actual->address);
printf("\n ZIP CODE: %s ", actual->zipcode);
actual = actual->sig;
}
getch();
return actual;
}
nodo* displaysearch()
{
nodo *actual = displayordenar();
nodo *inicio= creacion2();
char search[MAX];
printf("\n\nGive a name to search: ");
scanf("%s",search);
actual = inicio->sig;
while(actual != NULL)
{
if(strcmp(search, actual->name)==0)
{
printf("\n********************");
printf("\n NAME: %s",actual->name);
printf("\n TELEPHONE: %s", actual->telephone);
printf("\n E-MAIL: %s", actual->email);
printf("\n ADDRESS: %s ", actual->address);
printf("\n ZIP CODE: %s ", actual->zipcode);
}
actual = actual->sig;
}
return actual;
getch();
}
int main(int argc, char** argv)
{
displaysearch();
}