Ir ao conteúdo
  • Cadastre-se

Ajuda com código


ronildo.fl

Posts recomendados

Bom dia galera,

Alguém pode me ajudar com esse problema?

Reescrever o programa abaixo utilizando “IF ELSE” (onde estiver vermelho), considerando as mesmas opções de valor, aceitar P (p), M (m), G (g).

/*

Faça um algoritmo que receba o código, o preço e o tamanho da camiseta. Sabe-se que de acordo

com o tamanho há um desconto conforme tabela abaixo. Informe o código, e o valor do desconto.

tamanho “G” – 10%

tamanho “M” – 20%

tamanho “P” – 30%

Informe como resultado o código e o valor do desconto.

*/

#include <stdio.h>

int main(void)

{

double preço, desconto;
char tamanho;

printf ("Digite o preço da camiseta: ");
scanf ("%lf", &preço);
printf ("Digite o tamanho da camiseta [P /M /G]: ");
scanf (" %c", &tamanho);
[COLOR="Red"]switch (tamanho)
{
case 'g' :
case 'G' : desconto = preço * 0.10;
break;
case 'm' :
case 'M' : desconto = preço * 0.20;
break;
case 'p' :
case 'P' : desconto = preço * 0.30;
break;
default : printf ("Tamanho inválido.");
desconto = 0;
}[/COLOR]
printf ("Valor do desconto: R$%.2f\n", desconto);
return 0;
}

Link para o comentário
Compartilhar em outros sites

Eu até tentei, mas ele sempre imprime o último ELSE

#include <stdio.h>

int main(void)

{

double preco, desconto;
char tamanho;

printf ("Digite o preço da camiseta: ");
scanf ("%lf", &preco);
printf ("Digite o tamanho da camiseta [P /M /G]: ");
scanf (" %c", &tamanho);
if(tamanho == 'p' || tamanho == 'P')
{
printf("O desconto para a camiseta %c é %.2lf.\n", tamanho, preco*0.30);
}
else if(tamanho == 'm' || tamanho == 'M')
{
printf("O desconto para a camiseta %c é %.2lf.\n", tamanho, preco*0.20);
}
else (tamanho == 'G' || 'g');
{
printf("O desconto para a camiseta %c é %.2lf.\n", tamanho, preco*0.10);
}
return 0;
}

Link para o comentário
Compartilhar em outros sites

Nesse ultimo else, você não deveria fazer if(tamanho=='g'||tamanho=='G');?

Talvez seja isso, pois para C, zero é falso, e qualquer valor diferente de zero é verdadeiro, e o codigo ASCII de g obviamente não é zero. Pode ser isso

Agora que eu me toquei : um else não recebe possibilidades. Isso é do if. Se quiser, faça else if(tamanho=='G'||tamanho=='g') ou simplesmente else, pois ELSE NÃO RECEBE POSSIBILIDADES, QUEM FAZ ISSO É O IF.

OBS: não estava gritando, só queria dar uma maior enfase

Link para o comentário
Compartilhar em outros sites

Nesse ultimo else, você não deveria fazer if(tamanho=='g'||tamanho=='G');?

Talvez seja isso, pois para C, zero é falso, e qualquer valor diferente de zero é verdadeiro, e o codigo ASCII de g obviamente não é zero. Pode ser isso

Foi mal, erro de digitação meu, mas não interfere, continua da mesma forma, ele sempre imprime o ultimo else.

Agora que eu me toquei : um else não recebe possibilidades. Isso é do if. Se quiser, faça else if(tamanho=='G'||tamanho=='g') ou simplesmente else, pois ELSE NÃO RECEBE POSSIBILIDADES, QUEM FAZ ISSO É O IF.

OBS: não estava gritando, só queria dar uma maior enfase

Mas como eu posso fazer isso? Eu tenho que colocar 4 possibilidades, P p, M m, G g e inválido.

Link para o comentário
Compartilhar em outros sites

ronildo.fl o que o amigo Petrolifero disse é o seguinte:


else if(tamanho=='G'||tamanho== 'g'){
printf("O desconto para a camiseta %c é %.2lf.\n", tamanho, preco*0.10);
}

else{
printf("\n o tamanho informado e invalido \n");
}

espero que tenha entendido a solução.

Agora entendi, valeu pela ajuda. O código funcionando ficou assim:

int main(void)

{

double preco;
char tamanho;

printf ("Digite o preço da camiseta: ");
scanf ("%lf", &preco);
printf ("Digite o tamanho da camiseta [P /M /G]: ");
scanf (" %c", &tamanho);
if(tamanho == 'p' || tamanho == 'P')
{
printf("O desconto para a camiseta %c é %.2lf.\n", tamanho, preco*0.30);
}
else if(tamanho == 'm' || tamanho == 'M')
{
printf("O desconto para a camiseta %c é %.2lf.\n", tamanho, preco*0.20);
}
else if (tamanho == 'G' || tamanho == 'g')
{
printf("O desconto para a camiseta %c é %.2lf.\n", tamanho, preco*0.10);
}
else
{
printf("Tamanho inválido.\n");
}
return 0;
}

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

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

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!