Olá, quem pode me ajudar com o código que estou tentando desenvolver para um trabalho de faculdade?
Estou fazendo e colocando para compilar pra ir vendo se esta dando certo mas não estou conseguindo listar a lista que cadastro. Tenho a impressão que o problema é com os ponteiros.
Qualquer ajuda será muito bem vinda.
Desde já agradeço
Tarcisio
[code]#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
typedef struct registro{
char nome[30];
long int matricula;
registro *proximo;
}registro;
registro *principal=NULL;
/PROTOTIPOS/
registro *insere();
registro *altera();
void lista();
registro busca();
registro remove();
main()
{
int opcao;
do {
printf("\t\t******************\n");
printf("\t\tMENU DE OPCOES\n");
printf("\t\t******************\n\n\n");
printf("\tESCOLHA UMA OPCAO:\n\n\n");
printf(“1 - Inserir aluno\n”);
printf(“2 - Alterar aluno\n”);
printf(“3 - Listar alunos\n”);
printf(“4 - Buscar aluno\n”);
printf(“5 - Apagar aluno\n”);
printf(“6 - Sair\n”);
printf("\n");
printf("-> “);
scanf(”%d",&opcao);
printf("\n");
fflush(stdin);
system(“cls”);
}
while(opcao<1 || opcao>6);
switch (opcao){
case 1:
insere();
break;
/* case 2:
altera();
break;/
case 3:
void lista(registro principal);
break;
/ case 4:
busca();
break;
case 5:
remove();
break;/
case 6:
exit(0);
break;
}
system(“pause”);
}
registro *insere()
{
char nome[20];
long int mat;
registro *novo;
if(principal==NULL)
{
principal=(registro *)malloc(sizeof(registro));
printf("digite o nome: ");
gets(nome);
strcpy(principal->nome,nome);
printf(“matricula: “);
scanf(”%Li”,&(principal->matricula));
principal->proximo=novo;
main();
}
else
{
novo=(registro *)malloc(sizeof(registro));
printf("digite o nome: ");
gets(nome);
strcpy(novo->nome,nome);
printf(“matricula: “);
scanf(”%Li”,&(novo->matricula));
novo->proximo=NULL;
system(“cls”);
main();
}
}
/void altera()
{
falta fazer
}/
void lista(registro *novo)
{
printf(“Cadastro:\n\n”);
printf("------------\n");
while(novo!=NULL)
{
fprintf(stdout, "Nome: %s\n", novo->nome);
fprintf(stdout, "matricula: %d\n", novo->matricula);
fprintf(stdout, "------------\n");
novo=novo->proximo;
}
main();
}
[/code]