Jump to content
Fórum Script Brasil
  • 0

Problemas com chamada de função em C


†h!@gø

Question

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 to comment
Share on other sites

2 answers to this question

Recommended Posts

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...