#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include <conio.h>
#define MAX 21
typedef struct Sapato{
char marca[MAX];
char modelo[MAX];
char cor[MAX];
int num;
struct Sapato *prox;
}TSapato;
//VARIÁVEIS GLOBAIS
char marca[MAX], modelo[MAX], cor[MAX];
int num;
//FUNÇÃO AUXILIAR LER DADOS PILHA
void ler_dados()
{
system ("cls"
printf ("\n\nEntre com a marca do sapato: "
fflush (stdin);
fgets (marca,MAX,stdin);
printf ("Entre com o modelo do sapato: "
fflush (stdin);
fgets (modelo,MAX,stdin);
printf ("Entre com a cor do sapato: "
fflush (stdin);
fgets (cor,MAX,stdin);
printf ("Entre com a numeracao do sapato: "
fflush (stdin);
scanf ("%d", &num);
}
//FUNÇÃO INSERIR DADOS
void pilha_push(TSapato **topo)
{
TSapato *ptr;
ler_dados();//chamando a função
ptr=(TSapato*)malloc(sizeof(TSapato));
strcpy(ptr->marca,marca);
strcpy(ptr->modelo,modelo);
strcpy(ptr->cor,cor);
ptr->num=num;
ptr->prox=NULL;
if(*topo==NULL)
*topo=ptr;
else{
ptr->prox=*topo;
*topo=ptr;
}
}
//FUNÇÃO EXCLUIR DADOS
/*void pilha_pop(TSapato **topo)
{
TSapato *aux;
if(*topo==NULL)
printf ("ERRO: Pilha Vazia.\n"
else{
aux=*topo;
*topo=*topo->prox;
free(aux);
}
}*/
//FUNÇÃO LISTAR DADOS
void pilha_listar(TSapato **topo)
{
TSapato *aux;
aux=*topo;
while(aux!=NULL){
printf ("Marca do Sapato: %s",aux->marca);
printf ("Modelo do Sapato: %s",aux->modelo);
printf ("Cor do Sapato: %s",aux->cor);
printf ("Numero do Sapato: %d",aux->num);
aux=aux->*topo; //ERRO: `topo' cannot be used as a member pointer, since it is of type `TSapato**'
}
}
//FUNÇÃO PRINCIPAL
int main()
{
char op;
TSapato *topo=NULL;
do{
system ("cls"
printf ("\t\t\tFABRICA DE SAPATOS\n\n"
printf ("(I)ncluir dados sapato.\n"
printf ("(E)xcluir dados sapato.\n"
printf ("(L)istar dados sapato.\n"
printf ("(S)air do programa.\n"
printf ("\nDigite a opcao: "
op=toupper(getche());
switch(op){
case 'I': pilha_push(&topo);
break;
/* case 'E': pilha_pop (&topo);
break;*/
case 'L': pilha_listar(&topo);
break;
case 'S': exit(0);
default: printf ("\n\nOpcao invalida, digite novamente.\n\n"
}
system ("PAUSE"
}while (op!='S');
return (0);
}
palominha
Membro Senior
Registrado
246 Mensagens
0 Curtidas
PIlhas em C
#1 Por palominha
31/05/2006 - 16:39
Alguém pode ver qual o problema com esse código?