dudosurf 0 Denunciar post Postado Outubro 21, 2008 Pessoal, estou tentando fazer com que quando eu aperte o "0" na função "menuPilha ou menuLista", retorne para o menu principal, gostaria de uma ajuda, obrigado!!! # include <stdio.h> # include <stdlib.h> # include <string.h> void menuPilha(void){ int opc; for(;;){ puts("\nEscolha uma Funcao - PILHA\n\n"); puts(" [1] - Empilhar Elemento\n"); puts(" [2] - Desempilhar Elemento\n"); puts(" [3] - Acessar Elemento\n"); puts(" [4] - Visualizar PILHA\n"); puts(" [0] - Returnar ao Menu Principal\n"); puts("\n\n"); scanf ("%d",&opc); switch(opc){ case 1: puts("::Empilhar Elemento::\n\n"); break; case 2: puts("::Desempilhar Elemento::\n\n"); break; case 3: puts("::Acessar Elemento::\n\n"); break; case 4: puts("::Visualizar PILHA::\n\n"); break; case 0: puts("::Returnar ao Menu Principal::\n\n"); break; } } }; void menuFila(void){ int opc; for(;;){ puts("\nEscolha uma Funcao - FILA\n\n"); puts(" [1] - Inserir Elemento\n"); puts(" [2] - Excluir Elemento\n"); puts(" [3] - Acessar Elemento\n"); puts(" [4] - Visualizar FILA\n"); puts(" [0] - Returnar ao Menu Principal\n"); puts("\n\n"); scanf ("%d",&opc); switch(opc){ case 1: puts("::Inserir Elemento::\n\n"); break; case 2: puts("::Excluir Elemento::\n\n"); break; case 3: puts("::Acessar Elemento::\n\n"); break; case 4: puts("::Visualizar FILA::\n\n"); break; case 0: puts("::Returnar ao Menu Principal::\n\n"); break; } } }; // Menu Principal int main() { int opcao; for(;;){ puts(" \nEscolha a Opcao\n\n"); puts(" [1] - PILHA\n"); puts(" [2] - FILA\n"); puts(" [0] - SAIR\n"); puts("\n\n"); scanf ("%d",&opcao); switch (opcao){ case 1: puts("Pilha\n"); system("cls"); menuPilha(); break; case 2: puts("Fila\n"); system("cls"); menuFila(); break; case 0: puts("Sair\n"); return(0); default: printf("\n\n Opcao invalida!\n"); break; } system("PAUSE"); system("cls"); } return 0; } Compartilhar este post Link para o post Compartilhar em outros sites
quitZAUMMM 18 Denunciar post Postado Outubro 21, 2008 tentou fazer uma recursão? Compartilhar este post Link para o post Compartilhar em outros sites
_Isis_ 202 Denunciar post Postado Outubro 21, 2008 Quit,não dê idéias.Daqui a pouco vai ter nego enfiando return main()... # include <stdio.h> # include <stdlib.h> # include <string.h> void menuPilha(void){ int opc; while(1){ puts("\nEscolha uma Funcao - PILHA\n\n"); puts(" [1] - Empilhar Elemento\n"); puts(" [2] - Desempilhar Elemento\n"); puts(" [3] - Acessar Elemento\n"); puts(" [4] - Visualizar PILHA\n"); puts(" [0] - Returnar ao Menu Principal\n"); puts("\n\n"); scanf ("%d",&opc); if (!opc) break; switch(opc){ case 1: puts("::Empilhar Elemento::\n\n"); break; case 2: puts("::Desempilhar Elemento::\n\n"); break; case 3: puts("::Acessar Elemento::\n\n"); break; case 4: puts("::Visualizar PILHA::\n\n"); break; } } }; void menuFila(void){ int opc; while (1){ puts("\nEscolha uma Funcao - FILA\n\n"); puts(" [1] - Inserir Elemento\n"); puts(" [2] - Excluir Elemento\n"); puts(" [3] - Acessar Elemento\n"); puts(" [4] - Visualizar FILA\n"); puts(" [0] - Returnar ao Menu Principal\n"); puts("\n\n"); scanf ("%d",&opc); if (!opc) break; switch(opc){ case 1: puts("::Inserir Elemento::\n\n"); break; case 2: puts("::Excluir Elemento::\n\n"); break; case 3: puts("::Acessar Elemento::\n\n"); break; case 4: puts("::Visualizar FILA::\n\n"); break; } } }; // Menu Principal int main() { int opcao; while(1){ puts(" \nEscolha a Opcao\n\n"); puts(" [1] - PILHA\n"); puts(" [2] - FILA\n"); puts(" [0] - SAIR\n"); puts("\n\n"); scanf ("%d",&opcao); if (!opcao) break; switch (opcao){ case 1: puts("Pilha\n"); menuPilha(); break; case 2: puts("Fila\n"); menuFila(); break; default: printf("\n\n Opcao invalida!\n"); break; } } return 0; } Compartilhar este post Link para o post Compartilhar em outros sites
dudosurf 0 Denunciar post Postado Outubro 22, 2008 Ainda sou iniciante em C, mas um reurn main eu não seria capaz de enfiar ai .... rs Então essa séria a forma de fazer com recursão? se possível uma pequena explicação ficaria grato. Tb fiquei com dúvida nessa condição while(1){ ........... ........... ........... if (! opcao) break; } se puderem dar uma clareada, seria bom.... obrigado!!! Compartilhar este post Link para o post Compartilhar em outros sites
quitZAUMMM 18 Denunciar post Postado Outubro 22, 2008 é soh você fazer chamada ao menu dentro dele proprio. Compartilhar este post Link para o post Compartilhar em outros sites
dudosurf 0 Denunciar post Postado Outubro 23, 2008 pow,,, beleza... foi o que eu acabei fazendo mesmo ta funfando legal, o menu e as funções... hehe // Menu Principal int main() { int opcao,opc,opc1; Pilha *pilha; inicializar(&pilha); while(1){ puts(" \n[Escolha a Opcao]\n\n"); puts(" [1] - PILHA\n"); puts(" [2] - FILA\n"); puts(" [0] - SAIR\n"); puts("\n\n"); scanf ("%d",&opcao); if(!opcao) break; switch (opcao){ case 1: do{ puts("Pilha\n"); system("cls"); puts("\nEscolha uma Funcao - PILHA\n\n"); puts(" [1] - Empilhar Elemento\n"); // pelo topo puts(" [2] - Desempilhar Elemento\n"); // pelo topo puts(" [3] - Acessar Elemento\n"); // pelo topo puts(" [4] - Visualizar PILHA\n"); // completa puts(" [0] - Returnar ao Menu Principal\n"); puts("\n\n"); scanf ("%d",&opc1); switch(opc1){ case 1: puts("::Empilhar Elemento::\n\n"); empilhar(&pilha); system("PAUSE"); system("cls"); break; case 2: puts("::Desempilhar Elemento::\n\n"); desempilha(&pilha); system("PAUSE"); system("cls"); break; case 3: puts("::Acessar Elemento::\n\n"); acessa(pilha); system("PAUSE"); system("cls"); break; case 4: puts("::Visualizar PILHA::\n\n"); vizualizar(pilha); system("PAUSE"); system("cls"); break; } }while (opc1 != 0); break; case 2: do{ puts("Fila\n"); system("cls"); puts("\nEscolha uma Funcao - FILA\n\n"); puts(" [1] - Inserir Elemento\n"); // pela cauda puts(" [2] - Excluir Elemento\n"); // pela cabeça puts(" [3] - Acessar Elemento\n"); puts(" [4] - Visualizar FILA\n"); puts(" [0] - Returnar ao Menu Principal\n"); puts("\n\n"); scanf ("%d",&opc); switch (opc){ case 1: puts("::Inserir Elemento::\n\n"); system("PAUSE"); system("cls"); break; case 2: puts("::Excluir Elemento::\n\n"); system("PAUSE"); system("cls"); break; case 3: puts("::Acessar Elemento::\n\n"); system("PAUSE"); system("cls"); break; case 4: puts("::Visualizar FILA::\n\n"); system("PAUSE"); system("cls"); break; } }while (opc !=0); break; case 0: puts("Sair\n"); return(0); default: printf("\n\n Opcao invalida!\n"); break; } system("PAUSE"); system("cls"); } return 0; } Compartilhar este post Link para o post Compartilhar em outros sites