Home Fóruns Linguagem C EX028

Marcado: 

Visualizando 4 respostas da discussão
  • Autor
    Posts
    • #70953

      Olá!
      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!”);
      }

    • #70986

      Fala 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);

    • #71280
      Tutora Mayla
      Mestre

      Emerson, 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 o scanf: scanf("%c", &op);
      Quanto ao scanf, 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 o switch o case pode ser feito da seguinte forma: case '+'

      Espero ter ajudado, se a dúvida persistir volte a entrar em contato. Bons estudos!

    • #114015
      Matheus Soares
      Participante

      Olá, 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;
      }
      }

    • #114026
      Tutora Jessica
      Moderador

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

Visualizando 4 respostas da discussão
  • Você deve fazer login para responder a este tópico.