alecation Postado Junho 22, 2011 Denunciar Share Postado Junho 22, 2011 estou tentando fazer um switch dentro de outro mas ele passa diretocomo eu faco um menu dentro de outro sou novo com C, obrigado#include <stdio.h>#include <stdlib.h>main (){ char sex,serv,h,m,a,b,c,d; printf ("(h) ou (m)?\n"); scanf ("%c",&sex); switch (sex){ case 'h': ("h");break; case 'm': printf ("a,b,c,d\n");break; } scanf ("%c", &serv); switch (serv) { case 'a': printf ("a");break; case 'b': printf ("b");break; case 'c': printf ("c");break; case 'd': printf ("d");break; } system("pause"); }[/codebox] Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 jrsilvamg Postado Junho 22, 2011 Denunciar Share Postado Junho 22, 2011 você não está informado a variavel "ser", qual valor dela?scanf ("%c", &serv); switch (serv) { case 'a': printf ("a");break; case 'b': printf ("b");break; case 'c': printf ("c");break; case 'd': printf ("d");break; } Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 andremaia Postado Junho 29, 2011 Denunciar Share Postado Junho 29, 2011 Olá amigo.Primeiro declare a variavel serv.Agora, se voce quiser colocar um switch dentro de outro, tente coloca-lo dentro de um dos case do primeiro. Do jeito que está, voce esta declarando dois switch independentes e não um dentro do outro.alecation, o codigo a seguir foi compilado com exito.Sugiro tambem colocar um laço do{}while#include <stdio.h> #include <stdlib.h> main () { char sex,serv,h,m,a,b,c,d; printf ("(h) ou (m)?\n"); scanf ("%c",&sex); switch (sex) { int serv; case 'x' : scanf ("%c", &serv); switch (serv) { case 'a': printf ("a");break; case 'b': printf ("b");break; case 'c': printf ("c");break; case 'd': printf ("d");break; } break; case 'h': ("h");break; case 'm': printf ("a,b,c,d\n");break; } system("pause"); } Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jessé Augusto Postado Julho 2, 2011 Denunciar Share Postado Julho 2, 2011 Olá meu amigo!Você pode fazer um menu dentro do outro sem ter que usar, necessariamente, um switch dentro de outro.Dá uma olhada no código-fonte que segue.Espero poder ter ajudado de alguma forma.#include <stdio.h>#include <stdlib.h>#include <stdio.h>#include <stdlib.h>#include <string.h>#include <stdlib.h>#include <ctype.h>#define x 3 /* struct TipoDatFilme { int Dia; int Mes; int Ano; }; */ struct filme { char nome[30]; char genero[20]; char atorprincipal[40]; float valor; //struct TipoDatFilme DataFilme; }; typedef struct filme reg; void CadastrarFilme() { FILE *filme = fopen("C:\\Filmes\\filme.bin", "w+"); int continuar = 1, opcao; char nomefilme[40]; reg atributos; system("cls"); /**/ if(!filme == NULL) { printf("\n\n==== BEM-VINDO AO CADASTRO DE FILMES ===="); while(continuar==1) { printf("\n\n\n"); printf("\n\n\ INFORME O NOME DO FILME (S - Sair):"); gets(atributos.nome); if(((strcmp(atributos.nome,"S")==0)||(strcmp(atributos.nome,"s")==0))) { continuar = 2; break; } printf("\n\n\ INFORME O GENERO DO FILME (S - Sair): "); gets(atributos.genero); if(((strcmp(atributos.genero,"S")==0)||(strcmp(atributos.genero,"s")==0))) { continuar = 2; break; } //putc(atributos, *filme); if(fwrite(&atributos, sizeof(reg),1, filme)!=1) { printf("ERRO NA GRAVACAO DOS DADOS"); } else { system("cls"); printf("DADOS GRAVADOS COM SUCESSO!!! (1 - CONTINUAR / 2 - SAIR )"); } fclose(filme); }//while }//if else { printf("não E POSSIVEL CADASTRAR O FILME."); } }//void CadastrarFilme() void MenuFilme() { int opcao,continuar = 4; while (continuar == 4) { system("cls"); do { printf ("\n\n======= GERENCIADOR DE FILMES ==============="); printf ("\n\n\n 1 - CADASTRAR FILME"); printf ("\n\n\ 2 - LISTAR FILME"); printf ("\n\n\ 3 - BUSCAR FILME"); printf ("\n\n\ 4 - ALTERAR FILME"); printf ("\n\n\ 5 - EXCLUIR FILME"); printf ("\n\n\ 6 - RETORNAR AO MENU ANTERIOR: "); // printf ("\n\n\n ESCOLHA SUA OPCAO: "); scanf("%d",&opcao); system("cls"); }while(opcao < 1 || opcao > 6); if(opcao ==6) { system("cls"); continuar = 3; } else { switch (opcao) { case 1: CadastrarFilme(); break; system("cls"); }//switch } //else } //while }//void MenuFilme()int main(int argc, char *argv[]){ int opcao, continuar=4; FILE *filme; // printf ("\n\n\n\n\======= MENU DE OPCAO ======="); while(continuar == 4) { do { printf ("\n\n============= SEJA BEM-VINDO ==============\n\n"); printf ("\n\n============ SITEMA DE LOCADORA ==============="); printf("\n\n\n 1 - GERENCIADOR DE FILMES \n\n "); printf("2 - GERENCIADOR DE CLIENTES \n\n "); printf("3 - GERENCIADOR DE USUARIOS \n\n "); printf("4 - GERENCIADOR DE CONFIGURACOES \n\n "); printf("5 - SAIR DO PROGRAMA"); printf("\n\n\nESCOLHA SUA OPCAO: "); scanf("%d",&opcao); }while(opcao < 1 || opcao > 5); if (opcao == 5) { continuar = 3; } else { switch (opcao) { case 1: system("cls"); MenuFilme(); break; } } } printf("\n\n"); system("PAUSE"); return 0;}[/codebox] Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
alecation
estou tentando fazer um switch dentro de outro mas ele passa direto
como eu faco um menu dentro de outro
sou novo com C, obrigado
Link para o comentário
Compartilhar em outros sites
3 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.