Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Acma

[Resolvido] Função dentro da main() no dev c++

Recommended Posts

Boa tarde pessoal,

 

estou com um problema no projeto de C, não estou conseguindo implementar uma função na main() do projeto.

ele compila sem erros, só que não para na tela principal. já tentei outras alternativas, mais realmente não sei oq possa estar errado, estou usando o compilador DEV C++ 4.9.9.2. Eu inclui as bibliotecas stdlib,stdio,conio,math.

 

 

Abaixo segue o código da função, e como estou chamando ela na main() :

 

 

int main() {
void menu_principal();
}


void menu_principal() {
int entrada,scan_opt_conv_medidas;


do {
      
      printf("\n\n ::::::: CENTRAL DE CALCULOS  ::::::::");
      printf("\n\n\n 1- Conversao de medidas");
      printf("\n 2- Calculo de areas");
      printf("\n 3- Calculadora especial");
      printf("\n 4- Sair");
      printf("\n");
      printf("\n  - Digite a opcao:");
      scanf("%d",&entrada); 


switch(entrada) 






{


case 1:


       ConversaoMedidas();


break;


case 2:


       CalculoAreas();


break;


case 3:


       CalculadoraEspecial();


break; 




case 4:


printf("Sair");


break; 




default:


printf("\n\n ||| Opcao Invalida ||| ");


break;


}


getch(); 
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

1-Use a tag code 2-Não compila sem erros.

p.c: In function ‘main’: p.c:3: warning: control reaches end of non-void function p.c: In function ‘menu_principal’: p.c:12: warning: implicit declaration of function ‘printf’ p.c:12: warning: incompatible implicit declaration of built-in function ‘printf’ p.c:19: warning: implicit declaration of function ‘scanf’ p.c:19: warning: incompatible implicit declaration of built-in function ‘scanf’ p.c:35: warning: implicit declaration of function ‘ConversaoMedidas’ p.c:44: warning: implicit declaration of function ‘CalculoAreas’ p.c:53: warning: implicit declaration of function ‘CalculadoraEspecial’ p.c:84: warning: implicit declaration of function ‘getch’ p.c:85: error: expected ‘while’ at end of input p.c:85: error: expected declaration or statement at end of input p.c:7: warning: unused variable ‘scan_opt_conv_medidas’

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa noite _Isis_ ...

 

Não entendi seu diagnóstico... tem como me exlicar mais detalhadamente ?

 

Att, Rodrigo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acma,

 

A _Isis_ não fez diagnóstigo nenhum, apenas compilou o seu código e postou o que o compilador disse.

é fácil de entender o significado, olhe:

p.c: In function ‘main’: p.c:3: warning: control reaches end of non-void function

Aqui ele diz que, no arquivo "p.c", na função "main", na linha 3 há um warning, e diz que ele não encontrou nenhum "return" na sua função e ela não é do tipo void.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá VictorCacciari !

 

Agora entendi, obrigado, mais não estou vendo uma solução, pois já chamei ela como int .. e tbm não vai ..

se souber de alguma coisa, por favor me ajude !

 

Att,

 

Rodrigo Meneguetti Zaiden

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom primeiro aprendar identar melhor seu código, ta horrivel para a leitura.

E depois eu msm nunca vi oq está qrendo fazer, pq n faz a prototipação da função FORA acima da main(), e faz somente a chamada a ela na main() ??

do{
.
.
?????????????????????????

 

[]s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caríssimo,

 

Seu código deveria ser algo do tipo:

 

#include <stdio.h>
#include <stdlib.h>

void menu_principal();
void ConversaoMedidas();
void CalculoAreas();
void CalculadoraEspecial();

int main()
{
    void menu_principal();
}
//=============================
void menu_principal()
{
     int entrada;
     int scan_opt_conv_medidas;


     do {
        printf("\n\n ::::::: CENTRAL DE CALCULOS  ::::::::");
        printf("\n\n\n 1- Conversao de medidas");
        printf("\n 2- Calculo de areas");
        printf("\n 3- Calculadora especial");
        printf("\n 4- Sair");
        printf("\n");
        printf("\n  - Digite a opcao:");
        scanf("%d",&entrada); 

        switch(entrada) {
            case 1:
                 ConversaoMedidas();
                 break;
            case 2:
                 CalculoAreas();
                 break;
            case 3:
                 CalculadoraEspecial();
                 break; 
            case 4:
                 printf("Sair");
                 break; 
            default:
                  printf("\n\n ||| Opcao Invalida ||| ");
                  break; }
        getch(); 
        }//while(???????????????);
}

void ConversaoMedidas()
{
     printf("..... FUNCAO ConversaoMedidas\n");
}
void CalculoAreas()
{
     printf("..... FUNCAO CalculoAreas\n");
}
void CalculadoraEspecial()
{
     printf("..... FUNCAO CalculadoraEspecial\n");
}

OBS:

 

1)

Coloque o protótipo das funções:

void menu_principal();
void ConversaoMedidas();
void CalculoAreas();
void CalculadoraEspecial();
antes do main, se as funções se localizam depois do main.

 

2)

No seu do faltou while no final:

Sintaxe:

do
{
    comando;
}
while(condição);

3) Você está pegando o número e colocando na variável entrada:

scanf("%d",&entrada);
porém você digita o <numero> e tecla <enter>, esse enter pode estar sendo disparado pro getch(); e finalizando (saindo da tela principal igual você falou) o programa...

Tente substituir o

getch();
por:

getch();
getch();
Só pra verificar se é isso mesmo...

>> Se eu não me engano

fflush(stdin);
usado antes do

getch();
deve funcionar (depois pesquise melhor sobre o fflush(stdin);)

Compartilhar este post


Link para o post
Compartilhar em outros sites
(depois pesquise melhor sobre o fflush(stdin)

Pesquise porque não usar fflush(stdin).

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.