#include <stdio.h>
#include<stdlib.h>
struct registro
{
long int matricula;
char nome[81];
struct registro *next;
};
struct registro *raiz;
void adiciona()
{
struct registro *novoreg=(struct registro*)malloc(sizeof(struct registro));
if(novoreg==NULL){printf("Mem%cria insuficiente!",162); exit(1);}
printf("\nInforme a matr%ccula do funcion%crio: ",161,160);
scanf("%d",&novoreg->matricula);
getchar();
printf("Informe o nome: ");
gets(novoreg->nome);
novoreg->next=raiz->next;
raiz->next=novoreg;
}
void exclui()
{
struct registro *reg_atual, *reg_ant;
long int matric;
reg_atual=raiz->next;
reg_ant = raiz;
printf("\nInforme a matr%ccula do funcion%crio que ser%c exclu%cdo: ",161,160,160,161);
scanf("%d",&matric);
while(reg_atual!=NULL)
{
if(matric==reg_atual->matricula)
{
reg_ant->next=reg_atual->next;
printf("\nMatr%ccula exclu%cda com sucesso!",161,161);
free(reg_atual);
return;
}
reg_ant = reg_atual;
reg_atual=reg_atual->next;
}
printf("Matr%ccula n%co encontrada!\n",161,198);
}
void imp_lista()
{
struct registro *lista;
lista=raiz->next;
if(lista==NULL)
{
printf ("\n\n\a\a\a\a\tLista Vazia\n");
system ("pause");
exit(1);
}
else
{
while(lista!=NULL)
{
printf("\nMatr%ccula: %d",161,lista->matricula);
printf("\nFuncion%crio: %s",160,lista->nome);
lista=lista->next;
}
}
}
int main ()
{
int op=3;
raiz=(struct registro *)malloc(sizeof (struct registro));
if(raiz==NULL) exit(1);
raiz->next=NULL;
do
{
printf("Digite 1 para adicionar um novo registro, 2 para excluir, 3 para listar e 4 para sair: ");
scanf("%d",&op);
if(op==1)adiciona();
else if(op==2)exclui();
else if(op==3)imp_lista();
else if(op==4)exit(1);
printf("\n");
}while(op!=4);
free(raiz);
return 0;
}
poderia explicar seu codigo?
ResponderExcluirbruno_nunes555@hotmail.com
Poderia explicar seu codigo ?
ResponderExcluirjosue2011piloes@gmail.com