jessicais19
(usa Ubuntu)
Enviado em 09/11/2012 - 19:25h
Eis o código:
#include <stdio.h>
#include <stdlib.h>
struct cadastro{
char nome[20];
struct cadastro *anterior;
struct cadastro *proximo;
};
typedef struct cadastro lista;
//função do menu
menu(){
printf ("===========================================\n");
printf ("___________________________________________\n");
printf (" Menu\n");
printf ("___________________________________________\n");
printf("1 - para cadastrar nomes \n");
printf ("2 - listar nome da forma normal\n");
printf ("3 - listar ao contrario\n");
printf ("4 - procurar e excluir na forma normal\n");
printf("5 - sair\n");
printf ("===========================================\n");
}
//função cadastro
lista *cadastrar (lista *l){
lista *novo;
//armazena um elemento
novo=(lista*)malloc(sizeof(lista));
printf("Digite o nome: ");
scanf ("%s",&novo->nome);
o anterior é igual ao l
novo->anterior=l;
if (l!=NULL){
l->proximo=novo;
}
//O proximo elemento recebe nulo
novo->proximo=NULL;
l=novo;
printf ("\n");
return l;
}
//função mostrar elementos
lista *mostrar (lista *l){
printf ("nome\n");
while (l!=NULL){
printf ("%s\n",l->nome);
l=l->proximo;
}
}
lista *mostraContrario (lista *l){
printf ("nome\n");
while (l!=NULL){
printf ("%s\n",l->nome);
l=l->anterior;
}
}
//Função excluir que está com problemas
lista *excluir(lista *l){
lista *aux;
aux=(lista*)malloc(sizeof(lista));
char nome[20];
printf ("Digite o nome: ");
fflush (stdin);
scanf ("%c",&nome);
if (strcmp(l->nome,nome)==0){
aux=l->proximo;
free(l);
l=aux;
}
return l;
printf ("\n");
}
//Função main que aguarda os elementos inserido na função.
main (){
lista *l=NULL,*inicio,*aux;
char name[20];
system("color F0");
int opcao;
for (;;){
menu();
scanf ("%d",&opcao);
system("pause");
system("cls");
switch (opcao){
case 1:printf ("===========================================\n");
printf ("___________________________________________\n");
printf (" Cadastro de nome na forma normal\n");
printf ("___________________________________________\n");
if (l!=NULL){
l=cadastrar(l);
}
if (l==NULL){
l=cadastrar(l);
inicio=l;
}
printf ("===========================================\n");
system("pause");
system("cls");
break;
case 2:printf ("===========================================\n");
printf ("___________________________________________\n");
printf (" Listar na forma normal\n");
printf ("___________________________________________\n");
aux = inicio;
mostrar(aux);
printf ("===========================================\n");
system("pause");
system("cls");
break;
case 3:printf ("===========================================\n");
printf ("___________________________________________\n");
printf (" Lista ao contrario\n");
printf ("___________________________________________\n");
aux = l;
mostraContrario(aux);
printf ("===========================================\n");
system("pause");
system("cls");
break;
case 4:printf ("===========================================\n");
printf ("___________________________________________\n");
printf (" Excluir\n");
printf ("___________________________________________\n");
//printf ("Digite o nome: ");
///fflush(stdin);
//scanf ("%c",&name);
l=excluir(l);
printf ("\n");
printf ("===========================================\n");
system("pause");
system("cls");
fflush(stdin);
break;
case 5:printf ("===========================================\n");
printf ("___________________________________________\n");
printf (" Sair\n");
printf ("___________________________________________\n");
printf ("===========================================\n");
system("pause");
exit(0);
break;
}
}}