Ir ao conteúdo
  • Cadastre-se

alterar estrutura de if else por switch


Togni

Posts recomendados

Pessoal to com um exercício para fazer e não estou conseguindo. è o seguinte tenho que fazer um programa para me dizer se o numero é igual, maior ou menor que 10, usando switche. Eu comecei maisnão esta dando certo, alguem pode me ajudar ? Esta assim mais não acho a solução. Desde ja agradeço.

#include <stdio.h>

int main()

{

int num;

printf("digite um numero\n\n");

scanf("%d",&num);

switch(num)

{

case 1:

num==10;

printf("\n\n o numero e = 10",&num);

scanf("%d",&num);

break;

case 2:

printf("\n\n o numero e maior que 10");

scanf("%d",num >10);

break;

case 3:

printf("o numero e menor do que 10\n\n");

break;

}

system("PAUSE");

return(0);

}

Link para o comentário
Compartilhar em outros sites

Mano, dá pra fazer uma "gambiarra":


...
switch(((num>10)*2)+((num<10)))
{
case 0:
printf("O numero e = 10");
break;
case 1:
printf("O numero e menor do que 10");
break;
case 2:
printf("O numero e maior que 10");
break;
}
...

Acredito que você se equivocou em dizer que o exercício só aceita "switch()" , mas está aqui uma maneira (que não aconselho...).

Falou.

Link para o comentário
Compartilhar em outros sites

Olá pessoal, sou novato no fórum, mas vou tentar ajudar nessa dúvida do nosso amigo.

Como o exercício pede algo simples, para iniciante em programação, imagino que a rotina também deva ser simples. Algo para os alunos entenderem como funciona a lógica.

Supondo que, serão aceitos apenas valores inteiros e naturais, podemos criar o switch da seguinte maneira:


#include <stdio.h>

int main( void )
{
int num;
printf("digite um numero: ");
scanf("%d",&num);

switch ( num )
{

case 0:
printf("Menor que 10\n");
break;
case 1:
printf("Menor que 10\n");
break;
case 2:
printf("Menor que 10\n");
break;
case 3:
printf("Menor que 10\n");
break;
case 4:
printf("Menor que 10\n");
break;
case 5:
printf("Menor que 10\n");
break;
case 6:
printf("Menor que 10\n");
break;
case 7:
printf("Menor que 10\n");
break;
case 8:
printf("Menor que 10\n");
break;
case 9:
printf("Menor que 10\n");
break;
case 10:
printf("Igual a 10\n");
break;
default:
printf("Maior que 10\n");

}

return 0;

}

Link para o comentário
Compartilhar em outros sites

                case 0:
printf("Menor que 10\n");
break;
case 1:
printf("Menor que 10\n");
break;
case 2:
printf("Menor que 10\n");
break;
case 3:
printf("Menor que 10\n");
break;
case 4:
printf("Menor que 10\n");
break;
case 5:
printf("Menor que 10\n");
break;
case 6:
printf("Menor que 10\n");
break;
case 7:
printf("Menor que 10\n");
break;
case 8:
printf("Menor que 10\n");
break;
case 9:
printf("Menor que 10\n");
break;
case 10:
printf("Igual a 10\n");
break;
default:
printf("Maior que 10\n");

}

Se for fazer desse jeito vale mais a pena fazer desse: ( a meu ver)


{

case 0:
case 1:
case 2:
case 3:
case 4:
case 5:
case 6:
case 7:
case 8:
case 9:
printf("Menor que 10\n");
break;
case 10:
printf("Igual a 10\n");
break;
default:
printf("Maior que 10\n");

}
switch ( num )

@W_Neto

Eu queria só confirmar sua "gambia"

switch(((num>10)*2)+((num<10)))

(num>10)*2) aqui ele iria retornar 1 se fosse TRUE (número maior que 10)...ou false se menor..

se fosse true.. ele multiplicaria 1 por 2.. ( em nível binário 1 = true )... ou seja 2

levando em consideração que o número é maior que 10... ele retornaria false na segunda validação (num<10), ou seja 0, então 2 + 0 = 2 ( isso se for maior.)

se for menor.. ele retornaria 0 na primeira validação (num>10)*2), e 2*0 = 0.. e retornaria 1 na segunda..., ou seja 0 + 1 = 1.

Agora se ele for 10 ambas as validações seriam falsas... logo 0 + 0 = 0...

foi isso mesmo?

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

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...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!