Ir para conteúdo
Fórum Script Brasil
  • 0

Problemas com chamada de função em C


†h!@gø

Pergunta

Eae pessoal, estou tentando fazer um exercicio aqui estou tendo vários problemas, dúvidas, então por enquanto só vou mandar uma.

É o seguinte tem a função mostraTela que chama um menuzinho, ela executa de boa quando se executa o programa, mas ai começa os problemas, eu define que pode ser no maximo dois registros, depois de dois ele exibe banco cheio e chama a função do menu, o programa esta chamando a função, mas se eu escolho a opção 0, ou 2 ele esta fazendo a opção 1 que é de inserir porque isso esta acontecendo?

Outra problema com essa função, ao inserir um registro no final pergunta se quer inserir outro, se escolher não ele chama a função do menu, ele é chamada, mas eu digito uma opção mas nada acontece, alguém sabe porque? Vlw pessoal, segue o código

#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#define MAX 2

//typedef struct aluno {
   int ra[10];
    char nome[20];
    char curso[20];
    int idade;
    float mensalidade;
    int *p = &ra;
    
//} aluno;

// Menu    
int mostraTela(){
    int op;
    printf("+--------------------------+\n");
    printf("+  Escolha a opcao         +\n");
    printf("+  1= Inserir   2=Listar   +\n");
    printf("+  0= Sair                 +\n");
    printf("+--------------------------+\n");
    scanf("%d", &op); 
   // system("CLS");
    return op;
}
// Funçaõ inserir
int inserir (){

    int nreg;
    char opcao;
    
    system("CLS");  
    printf("Digite seu RA...:");
    scanf("%i", &ra);
    printf("Digite seu Nome.:");
    scanf("%s", &nome);  
    printf("Digite seu Curso:");
    scanf("%s", &curso); 
    printf("Digite sua Idade:");
    scanf("%d", &idade);
    printf("Digite o valor da sua mensalidade:");
    scanf("%f", &mensalidade);
    printf("Cadastro inserido com sucesso \n");
    nreg++;
    printf("Deseja cadastrar outro aluno? (s /n) \n");
    scanf("%s", &opcao);
       if (nreg >MAX){
             printf("Banco cheio\n");
            mostraTela();
             system("CLS");   
             }
     if (opcao =='s'){
      inserir();}
    if (opcao ='n'){
    system("CLS");
     mostraTela();
        }
   // listar();  
    }
// Função Listar
int listar(){

 int nreg;
 int i;
 for(i=0;i<nreg;i++){
 printf("RA...:%d",*p);
}
}
main (){
 int op;
 op = mostraTela();
      switch(op)
     {
       case 1: {
 inserir(); 
   
    getch();  
    }
   case 2: {
 listar(); 
   
    getch();  
    } 
}
   while(op != 0);
   
  return (0);    
  }

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...