Enviado em 01/04/2019 - 23:58h
typedef struct cadastro {
char nome[30];
char matricula[30];
char Disciplinas[30];
char notas[30];
struct cadastro *proxno;
} alunos;
int inserir_aluno_inicio(alunos **lista);
int inserir_aluno_fim(alunos **lista);
alunos *remover_aluno(alunos **lista);
int menu(void);
void opcoes(alunos **lista, int opc);
alunos *liberar();
alunos *inicializar();
void imprimir(alunos **lista);
void creditos();
int main()
{
int opcao;
alunos *lista = (alunos *)malloc(sizeof(alunos));
lista = inicializar();
do
{
opcao = menu();
opcoes(&lista, opcao);
system("pause");
system("cls");
} while (opcao != 5);
return 0;
}
alunos *inicializar()
{
return NULL;
}
int inserir_aluno_inicio(alunos **lista)
{
alunos *novo = (alunos *)malloc(sizeof(alunos));
if (novo == NULL)
{
puts("Sem memória");
return 1;
}
printf("Digite o nome do aluno ou da aluna: ");
scanf(" %s", novo->nome);
printf("Digite a matricula do aluno ou aluna[5 numeros ou letras]:");
scanf(" %s", novo->matricula);
printf("Digite a disciplina do aluno ou aluna: ");
scanf(" %s", novo->Disciplinas);
printf("Digite a nota da aluna ou do aluno:");
scanf(" %s", novo->notas);
puts("");
novo->proxno = *lista;
*lista = novo;
return 0;
}
int inserir_aluno_fim(alunos **lista)
{
alunos *novo_novo = (alunos *)malloc(sizeof(alunos));
novo_novo->proxno=NULL;
printf("Digite o nome do aluno ou da aluna: ");
scanf(" %s", novo_novo->nome);
printf("Digite a matricula do aluno ou aluna[5 numeros ou letras]:");
scanf(" %s", novo_novo->matricula);
printf("Digite a disciplina do aluno ou aluna: ");
scanf(" %s", novo_novo->Disciplinas);
printf("Digite a nota da aluna ou do aluno:");
scanf(" %s", novo_novo->notas);
puts("");
alunos *aux=*lista;
if(lista==NULL)
{
*lista=novo_novo;
return 0;
}
while(aux->proxno!=NULL)
{
aux=aux->proxno;
}
ant->proxno= *novo_novo;
}
//
int menu()
{
int ale;
puts("===============================================\n");
puts(" M E N U___E S C O L A R___V I N G A D O R E S =\n");
puts(" ===============================================\n");
printf(" |[ 0 ] INSERIR NO INICIO |\n");
puts(" |[ 1 ] INSERIR NO FIM |\n");
puts(" |[ 3 ] IMPRIMIR INFORMACOES DO ALUNO |\n");
puts(" |[ 4 ] CREDITOS |\n");
puts(" |[ 5 ] SAIR DA LISTA |\n");
puts(" =====================================|\n");
scanf("%d", &ale);
return ale;
}
void opcoes(alunos **lista, int opc)
{
switch (opc)
{
case 0:
inserir_aluno_inicio(lista);
break;
case 1:
inserir_aluno_fim(lista);
break;
case 2:
break;
case 3:
imprimir(lista);
break;
case 4:
creditos();
break;
case 5:
puts("Ate a proxima!");
break;
default:
puts("Nao existe essa opcao tente novamente!");
}
}
void imprimir(alunos **lista)
{
alunos *aux = lista;
while (aux->proxno!= NULL)
{
printf("O nome da aluna(o): %s", aux->nome);
printf("\n");
printf("A matricula do aluno(a) e: %s", aux->matricula);
printf("\n");
printf("A disciplina da aluna(o) e: %s",aux->Disciplinas);
printf("\n");
printf("A nota do aluno (a): %s", aux->notas);
printf("\n");
aux = aux->proxno;
}
}
void creditos()
{
puts("CREDITOS:");
puts("");
puts("GUILHERME SOARES SOUSA SILVA");
puts("");
puts("GABRIEL FARIAS");
puts("");
puts("ITALO AURELIO");
}
----------
Quando imprimo, aparecem valores aleatórios, como se fossem endereços. Compreendo que tenho que passar na chamada da função `main` assim:
escolha(&lista,opc)
Com o `&` para ele não perder a referência, mas ainda assim não mostra o que quero, que é inserir no final.
Armazenando a senha de sua carteira Bitcoin de forma segura no Linux
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Meu Fork do Plugin de Integração do CVS para o KDevelop
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
Cups: Mapear/listar todas as impressoras de outro Servidor CUPS de forma rápida e fácil
Criando uma VPC na AWS via CLI
erro de dependencia dos pacotes de driver da placa de video nvidia (de... (1)