não sei o que há de errado
#include <stdio.h>
#include <stdlib.h>
typedef struct pessoa {
int id;
char nome;
int cpf;
int rg;
char email;
struct pessoa *proximo;
} Tid;
void adicionar (Tid **cabeca);
void listar (Tid *cabeca);
int main()
{
Tid *cabeca = NULL;
Tid *noatual;
int opcao;
do {
printf("\n\nOpções: \n1 -> adicionar pessoa \n2 -> listar pessoas \n0 -> para sair:\n");
scanf("%d", &opcao);
switch(opcao) {
case 0:
break;
case 1:
adicionar(&cabeca);
case 2:
listar(cabeca);
break;
default: printf("\n\n Opção invalida!");
}
fflush(stdin);
}while (opcao != 0);
noatual = cabeca;
while (noatual != NULL)
{
cabeca = noatual -> proximo;
free(noatual);
noatual = cabeca;
}
}
void listar (Tid *noatual)
{
int id = 0;
while(noatual != NULL)
{
id++;
printf("\n\nID: %d\nNome: %c\nCpf: %d\nRg: %d\nE-mail: %c\n", id, noatual -> nome, noatual -> cpf, noatual -> rg, noatual -> email);
noatual = noatual -> proximo;
}
}
void adicionar (Tid **cabeca)
{
Tid *noatual, *novono;
int id;
char nome;
int cpf;
int rg;
char email;
printf("\nNome: ");
scanf("%s", &nome);
printf("\nCpf: ");
scanf("%d", &cpf);
printf("\nRg: ");
scanf("%d", &rg);
printf("\nE-mail: ");
scanf("%s", &email);
if (*cabeca == NULL) {
*cabeca = (Tid *) malloc(sizeof(Tid));
(*cabeca)-> id = id;
(*cabeca)->nome = nome;
(*cabeca)->cpf = cpf;
(*cabeca)->rg = rg;
(*cabeca)->email = email;
(*cabeca)->proximo = NULL;
} else {
noatual = *cabeca;
while(noatual->proximo != NULL)
noatual = noatual -> proximo;
novono = (Tid *) malloc(sizeof(Tid));
novono->id = id;
novono->nome = nome;
novono->cpf = cpf;
novono->rg = rg;
novono->email = email;
novono->proximo = NULL;
noatual->proximo = novono;
}
}
#include <stdlib.h>
typedef struct pessoa {
int id;
char nome;
int cpf;
int rg;
char email;
struct pessoa *proximo;
} Tid;
void adicionar (Tid **cabeca);
void listar (Tid *cabeca);
int main()
{
Tid *cabeca = NULL;
Tid *noatual;
int opcao;
do {
printf("\n\nOpções: \n1 -> adicionar pessoa \n2 -> listar pessoas \n0 -> para sair:\n");
scanf("%d", &opcao);
switch(opcao) {
case 0:
break;
case 1:
adicionar(&cabeca);
case 2:
listar(cabeca);
break;
default: printf("\n\n Opção invalida!");
}
fflush(stdin);
}while (opcao != 0);
noatual = cabeca;
while (noatual != NULL)
{
cabeca = noatual -> proximo;
free(noatual);
noatual = cabeca;
}
}
void listar (Tid *noatual)
{
int id = 0;
while(noatual != NULL)
{
id++;
printf("\n\nID: %d\nNome: %c\nCpf: %d\nRg: %d\nE-mail: %c\n", id, noatual -> nome, noatual -> cpf, noatual -> rg, noatual -> email);
noatual = noatual -> proximo;
}
}
void adicionar (Tid **cabeca)
{
Tid *noatual, *novono;
int id;
char nome;
int cpf;
int rg;
char email;
printf("\nNome: ");
scanf("%s", &nome);
printf("\nCpf: ");
scanf("%d", &cpf);
printf("\nRg: ");
scanf("%d", &rg);
printf("\nE-mail: ");
scanf("%s", &email);
if (*cabeca == NULL) {
*cabeca = (Tid *) malloc(sizeof(Tid));
(*cabeca)-> id = id;
(*cabeca)->nome = nome;
(*cabeca)->cpf = cpf;
(*cabeca)->rg = rg;
(*cabeca)->email = email;
(*cabeca)->proximo = NULL;
} else {
noatual = *cabeca;
while(noatual->proximo != NULL)
noatual = noatual -> proximo;
novono = (Tid *) malloc(sizeof(Tid));
novono->id = id;
novono->nome = nome;
novono->cpf = cpf;
novono->rg = rg;
novono->email = email;
novono->proximo = NULL;
noatual->proximo = novono;
}
}
Pedro
Curtidas 0