Home › Fóruns › Linguagem C › EX028
Marcado: Switch case
- Este tópico contém 4 respostas, 5 vozes e foi atualizado pela última vez 2 anos atrás por
Tutora Jessica.
-
AutorPosts
-
-
9 de julho de 2021 às 10:45 #70953
EMERSON GONCALVES REIS
ParticipanteOlá!
Fiz o exercicio, porem não consegui declarar o tipo primitivo char para fazer a seleção do switch (+, -, *, /), so consegui declarando como int. Como eu faço atribuindo char? segue abaixo o meu codigo:#include <stdio.h>;
#include <locale.h>;
#include <string.h>;
void main (){
setlocale(LC_ALL, “portuguese”);
printf(“<<< EX028 – super calculadora v1.0 >>>\n\n”);
printf(“Valor 1: “);
int v1;
scanf (“%i”, &v1);
printf (“Valor 2: “);
int v2;
scanf (“%i”, &v2);
printf(“\n=====================\n”);
printf(“1 +\tadição\n”);
printf(“2 -\tsubtração\n”);
printf(“3 *\tmultiplicação\n”);
printf(“4 \\\tdivisão\n”);
printf(“=====================\n”);
printf(“Digite sua opção => “);
int op;
fflush(stdin);
scanf(“%i”, &op);
int soma=v1+v2;
int sub=v1-v2;
int mult=v1*v2;
int div=v1/v2;
switch (op) {
case 1:
printf(“O resultado de %i+%i é igual a %i”, v1, v2, soma);
break;
case 2:
printf(“O resultado de %i-%i é igual a %i”, v1, v2, sub);
break;
case 3:
printf(“O resultado de %ix%i é igual a %i”, v1, v2, mult);
break;
case 4:
printf(“O resultado de %i/%i é igual a %i”, v1, v2, div);
break;
default:
printf(“Não foi possivel fazer a operação. Tente novamente”);
break;
}
printf(“\n——————————-“);
printf(“Volte sempre!”);
} -
9 de julho de 2021 às 16:30 #70986
Gustavo Teixeira da Silva
ParticipanteFala aí Emerson. Segue parte do meu código (com alguns comentários), pra você pegar o sentimento:
float v1, v2, soma, sub, mult, div;
char op = 0; //ao criar a variável char, deve-se atribuir um valor inicial à ela. Posteriormente, assumirá a opção digitada
printf(“<<< ES028 – Super Calculadora v1.0 >>>\n”);
printf(“\nVALOR 1: “);
scanf(“%f”, &v1);
printf(“\nVALOR 2: “);
scanf(“%f”, &v2);
printf(“\n=====================”);
printf(“\n+ Adição \n- Subtração \n* Multiplicação \n/ Divisão”);
printf(“\n=====================”);
printf(“\nDigite sua opção => “);
scanf(” %c”, &op); -
12 de julho de 2021 às 18:23 #71280
Tutora Mayla
MestreEmerson, para declarar uma variável do tipo
char
pode ser feito assim :char op;
Pode ser declarada também atribuindo um valor:char op = '';
Para ler um char utilizando oscanf
:scanf("%c", &op);
Quanto aoscanf
, tome cuidado na leitura pois pode ter sobrado um caractere no buffer da leitura anterior, logo uma forma de solucionar o problema é fazer a leitura com um espaço na frente do%c
desta forma:scanf(" %c", &op);
Para oswitch
ocase
pode ser feito da seguinte forma:case '+'
Espero ter ajudado, se a dúvida persistir volte a entrar em contato. Bons estudos!
-
14 de abril de 2023 às 16:43 #114015
Matheus Soares
ParticipanteOlá, boa tarde.
Qual erro foi cometido neste codigo?
void main () {
setlocale(LC_ALL, “Portuguese”);
printf(“<<< Calculadora >>>\n\n”);
int n1, n2;
char calc;
printf(“Valor 1: “);
fflush(stdin);
scanf(“%i”, &n1);
printf(“Valor 2: “);
fflush(stdin);
scanf(“%i”, &n2);
printf(“===============\n”);
printf(“+ \tAdição\n”);
printf(“+ \tSubtração\n”);
printf(“+ \tMultiplicação\n”);
printf(“+ \tDivisão\n”);
printf(“===============\n”);
printf(“Digite sua Operação: “);
scanf(“%c”, calc);
switch (calc) {
case ‘+’:
printf(“o resultado de: %i + %i é igual a: %i”, n1, n2, (n1 + n2));
break;
case ‘-‘:
printf(“O resoltado de %i – %i é igual a: %i”, n1, n2, (n1 – n2));
break;
case ‘*’:
printf(“O resultado de %i * %i é igual a: %i”, n1, n2, (n1 * n2));
break;
case ‘/’:
printf(“O resultado de %i / %i é igual a: %i”, n1, n2, (n1 / n2));
break;
default:
printf(“Erro!”);
break;
}
} -
14 de abril de 2023 às 18:28 #114026
Tutora Jessica
ModeradorOla Matheus, veja a explicação da tutora Mayla já respondida no fórum que cabe exatamente para o erro do seu código.
Caso não consiga resolver, retorne ao fórum que iremos lhe ajudar. 🖖
-
-
AutorPosts
- Você deve fazer login para responder a este tópico.