Buscar

Switch só aceita números inteiros?

switch(numeroDigitado2){
case 0:
printf("\nIgual a zero.");
break;

case >0: // case label does not reduce to an integer constant. O valor é um float aqui.
printf("\nPositivo");
break;

case <0:
printf("\nNegativo.");
break;
}

💡 4 Respostas

User badge image

Gabriel de Oliveira Almeida

Então, o numeroDigitado pelo o que me lembro, só pode ser int ou char, dentro de case, não se deve colocar condições, como '<' ou '>', sempre deve ser uma constante, um valor conhecido, por isso tem esse erro, então um alternativa para esse programa é utilizar if e else mesmo, irá funcionar perfeitamente, 

if(numeroDigitado2==0) puts("zero");
else if(numeroDigitado2>0) puts("Positivo");
else puts("Negativo");

 

 
 
 
G
M
T
 
 
 
 
 
 
 
 
 
 
 
 
Text-to-speech function is limited to 200 characters
 
 
Options : History : Feedback : Donate Close
0
Dislike0
User badge image

RD Resoluções

Sim, o comando switch...case somente trabalha com valores inteiros ou que possam ser interpretados como inteiros, como é o caso do char.

0
Dislike0

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

✏️ Responder

SetasNegritoItálicoSublinhadoTachadoCitaçãoCódigoLista numeradaLista com marcadoresSubscritoSobrescritoDiminuir recuoAumentar recuoCor da fonteCor de fundoAlinhamentoLimparInserir linkImagemFórmula

Para escrever sua resposta aqui, entre ou crie uma conta

User badge image

Outros materiais