Rockwell Postado Setembro 16, 2012 Denunciar Share Postado Setembro 16, 2012 Alguém por favor, pode explicar pra mim, onde estou errando?quando eu rodo o programa, ele só volta o primeiro if, indiferente do que eu digitar.#include <iostream>#include <stdlib.h>#include <conio.h>using namespace std;int main (void){int a;cout << "DGT a hora que você inicia: ";cin >> a;{if (7 || 8 || 9 || 10 || 11 || 12 == a){cout << "Seu turno e das 5hs as 12,59hs" << endl;}else if (13 || 14 || 15 || 16 || 17 || 18 || 19 || 20 == a){cout << "Seu turno e das 13hs as 20,59hs" << endl;}else if (21 || 22 || 23 || 24 || 1 || 2 || 3 || 4 || 5 || 6 == a){cout << "Seu turno e das 21hs as 6:59hs" << endl;}}getch();return 0;} Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 PedroCunha Postado Setembro 16, 2012 Denunciar Share Postado Setembro 16, 2012 (editado) Olá, você tem 1 par extra de chaves e as suas declarações no if estão erradas.O seu código deveria ficar da seguinte forma:#include <iostream> #include <stdlib.h> #include <conio.h> using namespace std; int main (void) { int a; cout << "DGT a hora que você inicia: "; cin >> a; if (a == 7 || a == 8 || a == 9 || a == 10 || a == 11 || a == 12) { cout << "Seu turno e das 5hs as 12,59hs" << endl; } else if (a == 13 || a == 14 || a == 15 || a == 16 || a == 17 || a == 18 || a == 19 || a == 20) { cout << "Seu turno e das 13hs as 20,59hs" << endl; } else if ( a == 21 || a == 22 || a == 23 || a == 24 || a == 1 || a == 2 || a == 3 || a == 4 || a == 5 || a == 6) { cout << "Seu turno e das 21hs as 6:59hs" << endl; } getch(); return 0; } E para os acentos funcionarem coloque esse código no começo da sua main: setlocale(LC_ALL, "Portuguese");Não se esqueça de incluir a biblioteca locale no começo do seu programa (#include <locale>Att.,Pedro Cunha Editado Setembro 16, 2012 por PedroCunha Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Marcelo Utikawa da Fonseca Postado Setembro 17, 2012 Denunciar Share Postado Setembro 17, 2012 Olá!Ótima resposta Pedro, é isso mesmo! :)Apenas para complementar: nesse caso eu usaria o switch. Ficaria muito mais fácil para ler o código, simplificando a sua manutenção:#include <iostream> #include <stdlib.h> #include <conio.h> using namespace std; int main (void) { int a; cout << "DGT a hora que você inicia: "; cin >> a; switch(a) { case 7: case 8: case 9: case 10: case 11: case 12: cout << "Seu turno e das 5hs as 12,59hs" << endl; break; case 13: case 14: case 15: case 16: case 17: case 18: case 19: case 20: cout << "Seu turno e das 13hs as 20,59hs" << endl; break; case 21: case 22: case 23: case 24: case 1: case 2: case 3: case 4: case 5: case 6: cout << "Seu turno e das 21hs as 6:59hs" << endl; break; default: cout << "hora inválida!" << endl; break; } getch(); return 0; } Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 PedroCunha Postado Setembro 17, 2012 Denunciar Share Postado Setembro 17, 2012 Obrigado Marcelo.Verdade, o switch jogaria fora a necessidade de tantas repetições nas declarações dos 'ifs'. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Rockwell
Alguém por favor, pode explicar pra mim, onde estou errando?
quando eu rodo o programa, ele só volta o primeiro if, indiferente do que eu digitar.
#include <iostream>
#include <stdlib.h>
#include <conio.h>
using namespace std;
int main (void)
{
int a;
cout << "DGT a hora que você inicia: ";
cin >> a;
{
if (7 || 8 || 9 || 10 || 11 || 12 == a)
{
cout << "Seu turno e das 5hs as 12,59hs" << endl;
}
else if (13 || 14 || 15 || 16 || 17 || 18 || 19 || 20 == a)
{
cout << "Seu turno e das 13hs as 20,59hs" << endl;
}
else if (21 || 22 || 23 || 24 || 1 || 2 || 3 || 4 || 5 || 6 == a)
{
cout << "Seu turno e das 21hs as 6:59hs" << endl;
}
}
getch();
return 0;
}
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.