Ir para conteúdo
Fórum Script Brasil
  • 0

Erro na const enum com if e else ajuda!


Chor

Pergunta

Galera estou seguindo uma apostila basica em c++ do tarcisio lopes,

estou aprendendo a função 'enum',

ele me deu este exemplo:

Exemplo

// Enum.cpp

// Ilustra o uso

// de enumerações.

#include <iostream.h>

int main()

{

// Define uma enumeração.

enum DiasDaSemana

{

Segunda,

Terca,

Quarta,

Quinta,

Sexta,

Sabado,

Domingo

}; // Fim de enum DiasDaSemana.

// O mesmo que:

// const int Segunda = 0;

// const int Terca = 1;

// Etc...

// const int Domingo = 6;

// Declara uma variável do tipo

// enum DiasDaSemana.

DiasDaSemana dias;

// Uma variável int.

int i;

cout << "Digite um num. (0 a 6) + <Enter>:\n";

cin >> i;

dias = DiasDaSemana(i);

if((dias == Sabado) || (dias == Domingo))

cout << "Voce escolheu o fim de semana.\n";

else

cout << "Voce escolheu um dia util.\n";

return 0;

} // Fim de main()

Saída gerada por este programa:

Digite um num. (0 a 6) + <Enter>:

5

Voce escolheu o fim de semana.

Legal até ai tudo bem eu reproduzi e está funcionando sussa

estou usando o programa Devc++.

então ousado do jeito que sou não gosto de ficar em uma coisa só resolvi seguir um exercicio que ele mandou era simples mais resolvi incrementar.

Exercício

Escreva um programa que declare e utilize uma enumeração chamada Horas, de maneira que a constante

UmaHora tenha o valor 1, a constante DuasHoras tenha o valor 2, e assim por diante, até que a constante

DozeHoras tenha o valor 12.

era só um programa simples com demonstração de horas eu até fiz mais acabei apagando então fui mais longe vou tentar colocar com horas distintas e descritas leia abaixo o que fiz.

//enumhoras.cpp

#include <iostream.h>

int main()

{

enum horasdodia

{

uma = 1, duas, tres, quatro, cinco, seis, sete, oito, nove, dez, onze, doze

};

horasdodia horas;

int f;

cout <<"Digite um numero para descrever a hora do dia de (1 a 12) + <Enter>: \n";

cin >> f;

horas = horasdodia(f);

if((horas == uma) || (horas == duas) || (horas == tres) || (horas == quatro) || (horas == cinco))

cout <<"Voce escolheu um horario ruim é madrugada agora :S \n";

if((horas == seis) || (horas == sete) || (horas == oito))

cout <<"Voce escolheu um horario legal o cafe da manha :D \n";

if((horas == nove) || (horas == dez) || (horas == onze))

cout <<"Hora da fome pre almoco o.o \n";

if((horas == doze))

cout <<"Almoco eeeebbaaaa xD \n";

else

cout <<" voce não escolheu um numero de 1 a 12 desculpe \n";

return 0;

}

legal olhando até poderia ser um sucesso (kkk)

compilação certinha sem erros.

porém quando rodo o programa no ms-dos

tem um pequeno conflito:

quando digito o numero 0 ou > que 12 ele da um retorno certo

cout <<" voce não escolheu um numero de 1 a 12 desculpe \n";

quando eu digito o numero 12 ele dá um retorno certo

cout <<"Almoco eeeebbaaaa xD \n";

porém quando digito os demais numeros da o resultado pre-escrito nas cout e ainda da o return de else você não digitou um numero de 1 a 12.

pergunta onde estou errando?

desculpe o longo texto mais tá ai...

agradeço desde já :D

atenciosamente,

Fabio.

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

//enumhoras.cpp

#include <iostream.h>

int main()

{

enum horasdodia

{

uma = 1, duas, tres, quatro, cinco, seis, sete, oito, nove, dez, onze, doze

};

horasdodia horas;

int f;

cout <<"Digite um numero para descrever a hora do dia de (1 a 12) + <Enter>: \n";

cin >> f;

horas = horasdodia(f);

if((horas == uma) || (horas == duas) || (horas == tres) || (horas == quatro) || (horas == cinco))

cout <<"Voce escolheu um horario ruim é madrugada agora :S \n";

if((horas == seis) || (horas == sete) || (horas == oito))

cout <<"Voce escolheu um horario legal o cafe da manha biggrin.gif \n";

if((horas == nove) || (horas == dez) || (horas == onze))

cout <<"Hora da fome pre almoco o.o \n";

if((horas == doze))

cout <<"Almoco eeeebbaaaa xD \n";

if((horas < uma || horas > doze))

cout <<" voce não escolheu um numero de 1 a 12 desculpe \n";

return 0;

}

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...