Ir ao conteúdo
  • Cadastre-se

C Esse programa não executa da maneira que deveria,o que fiz de errado?


Amanda Kellen

Posts recomendados

Preciso fazer esse programa que faz o cadastramento e depois busca do aluno digitado determinado aluno,a função main deve ser como está no programa podendo acrescentar algo.O programa compila porém após informar q será necessário fazer busca ele pede o nome do aluno sempre,não saindop desse loop.além disso quando não é pedido pra sefazer uma busca ele deve imprimir os alunos cadastrados,mas ao solicitar isso o programa trava.O que faço?

 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
 #define Tamanho 20

 struct TipoAluno
{
 char Nome[Tamanho];
 int Nota;
 struct TipoAluno *PtrProximo;
};
 struct TipoAluno * insere (struct TipoAluno *);
 void imprime (struct TipoAluno *);
 struct TipoAluno * busca (struct TipoAluno *);

 int main ()
 {
 char ch;
 struct TipoAluno * LAlunos;
 struct TipoAluno *procura;
LAlunos='\0';
 printf("\nInserir novo Aluno? (s/n)");
 scanf("%c",&ch);
 setbuf(stdin,'\0');
 while(ch=='s' || ch=='S')
 {
 LAlunos = insere(LAlunos);
 printf("Inserir novo Aluno? (s/n)");
 scanf("%c",&ch);
 setbuf(stdin,'\0');
 }
 printf("\nINCLUSAO FINALIZADA!!!\n");
 imprime(LAlunos);
 return 0;
 }

 struct TipoAluno * insere (struct TipoAluno* Aluno)
 {
 struct TipoAluno *novo = (struct TipoAluno*) malloc(sizeof(struct TipoAluno));
 printf("\nDigite Nome: ");
 gets(novo->Nome);
novo->PtrProximo = Aluno;
 printf("\nDigige a Nota:");
scanf("%d",&novo->Nota);
 setbuf(stdin,'\0');
 return novo;
  }

  void imprime (struct TipoAluno *x)
  {
    int i;
    char resposta;
    struct TipoAluno *z;
    printf("Deseja fazer alguma busca? (s/n):\n");
    scanf("%c",&resposta);
    while((resposta=='S')||(resposta=='s'))
    {
        printf("Digite o Nome para busca:\n");
        gets(x->Nome);


    }
    printf("BUSCA FINALIZADA!!!\n");
    printf("ITENS DA LISTA:\n");
    z=busca(x);
    while(z!=0)
    {
        printf("Nome nao encontrado!");
        printf("Deseja fazer alguma busca? (s/n):\n");
        scanf("%c",&resposta);
    }
    for(i=0;i<(sizeof(struct TipoAluno));i++)
    {
        printf("Nome: %s\n",z[i].Nome);
        printf("Nota: %i",z[i].Nota);
        printf("\n");
    }
  }
   struct TipoAluno * busca (struct TipoAluno *y)
  {
   struct TipoAluno *aux;
   if(strcmp((aux->Nome),(y->Nome)==0))
      {
          return 0;
      }
      else
        {
            return 1;
        }
  }

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!