Ir ao conteúdo
  • Cadastre-se

C Indentação de menus e submenus


James_Mulder

Posts recomendados

o problema é bem fácil, não envolve lógica, mas como nunca estudei ou pratiquei switch, estou com duvidas com relação a como fazer submenus .

eu preciso criar um codigo onde tem inicialmente 3 categorias: mamiferos, aves e repteis, e dessas submenus e (sub)submenus. eu não coloquei o codigo inteiro, porque como n teno certeza se estou fazendo certo não quis tentar terminar a toa: estou com duvidas com relação a submenus, breaks e repetição de variaveis

 

Spoiler

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main(){

int op, op2, op3;

printf("-----------------------MENU--------------------");
printf("\n1 para mamiferos\n2 para aves\n3 para repteis");
printf("digite a opcao: ");
scanf("%d", &op);

switch(op){
    case 1:
        printf("\n1 para quadrupedes\n2 para bipedes\n3 para voador\n4 para aquatico");
        scanf("%d", op2);
        case 1:
            switch(op){
            printf("\1 para carnivoros \n2 para herbivoros");
            scanf("%d", op3);
            case 1:
                printf("Leao");
            case 2:
                printf("Cavalo");
                }

 

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

O correto seria:

sint main()
{
    int op, op2, op3;
    printf("-----------------------MENU--------------------");
    printf("\n1 para mamiferos\n2 para aves\n3 para repteis");
    printf("digite a opcao: ");
    scanf("%d", &op);
    
    switch(op){
    case 1: //mamiferos
        printf("\n1 para quadrupedes\n2 para bipedes\n3 para voador\n4 para aquatico");
        scanf("%d", &op2);
        switch(op2) {
        case 1: //quadrupedes
            printf("\n1 para carnivoros \n2 para herbivoros");
            scanf("%d", &op3);
            switch(op3){
          
                case 1: //carnivoros
                	printf("Leao");
					break;
            	case 2://herbivoros
                	printf("Cavalo");           
                    break;
                }
            break;
            
        case 2: //bipedes
            break;
        case 3: //voador
            break;
        case 4: //aquatico
            break;
        }
        break;
    case 2: //aves
        break;
    case 3: //repteis
        break;
    }
    return 0;
}

 

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

@Flávio Pedroza agora preciso que o programa pare depois de chegar ao fim de uma das categorias. Mesmo depois q acaba a quadrupedes, ainda assim ele continua e pergunta a opção pra bipede

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main(){
    int op, op2, op3, op4, op5, op6, op7, op8;
    printf("-----------------------MENU--------------------");
    printf("\n1 para mamiferos\n2 para aves\n3 para repteis");
    printf("\ndigite a opcao: ");
    scanf("%d", &op);

    switch(op){
    case 1: //mamiferos
        printf("\n1 para quadrupedes\n2 para bipedes\n3 para voador\n4 para aquatico");
        scanf("%d", &op2);
        switch(op2) {
        case 1: //quadrupedes
            printf("\n1 para carnivoros \n2 para herbivoros");
            scanf("%d", &op3);
            switch(op3){
                case 1: //carnivoros
                	printf("Leao");
					break;
            	case 2://herbivoros
                	printf("Cavalo");
                    break;}}
        case 2: // bipedes:
            printf("\n1 para onivoro \n2 para frutifero");
            scanf("%d", &op4);
            switch(op4){
                case 1: //onivoro
                    printf("Homem");
                    break;
                case 2: //frutifero
                    printf("Macaco");
                    break;
            }}}

 

Link para o comentário
Compartilhar em outros sites

Tá faltando um break. Lembre-se, casa "case" tem que ter o "break" correspondente.

case 1: //mamiferos
        printf("\n1 para quadrupedes\n2 para bipedes\n3 para voador\n4 para aquatico");
        scanf("%d", &op2);
        switch(op2) {
        case 1: //quadrupedes
            printf("\n1 para carnivoros \n2 para herbivoros");
            scanf("%d", &op3);
            switch(op3){
                case 1: //carnivoros
                	printf("Leao");
                    break;//op3 - case 1
            	case 2://herbivoros
                	printf("Cavalo");
                    break;}//op3 - case 2
            break;//op2 - case 1:

Bota uns cometários como fiz, para se guiar.

Link para o comentário
Compartilhar em outros sites

@Flávio Pedroza agora nos cases 3 e 4 tem apenas um animal. morcego pra 3(voador) e baleia pra 4 (aquatico), então não tem o q scanf ou switch. eu tento colocar apenas case 3 e imprimir direto mas n aparece

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main(){
    int op, op2, op3, op4, op5, op6, op7, op8;
    printf("-----------------------MENU--------------------");
    printf("\n1 para mamiferos\n2 para aves\n3 para repteis");
    printf("\ndigite a opcao: ");
    scanf("%d", &op);

    switch(op){
    case 1: //mamiferos
        printf("\n1 para quadrupedes\n2 para bipedes\n3 para voador\n4 para aquatico:\n ");
        scanf("%d", &op2);
        switch(op2) {
        case 1: //quadrupedes
            printf("\n1 para carnivoros \n2 para herbivoros:\n ");
            scanf("%d", &op3);
            switch(op3){
                case 1: //carnivoros
                	printf("Leao");
					break;
            	case 2://herbivoros
                	printf("Cavalo");
                    break;}
                break;
        case 2: // bipedes:
            printf("\n1 para onivoro \n2 para frutifero:\n ");
            scanf("%d", &op4);
            switch(op4){
                case 1: //onivoro
                    printf("Homem");
                    break;
                case 2: //frutifero
                    printf("Macaco");
                    break;
                break;
        case 3: // voador
            printf("Morcego");
            break;
        break;

                    }}}}

 

adicionado 56 minutos depois
56 minutos atrás, James_Mulder disse:

 

@Flávio Pedroza

era só colocar uma } depois do break; fui desatento 

era

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!