Ir ao conteúdo
  • Cadastre-se

C Calculadora com saída em duas casas decimais


Gabrielga_99

Posts recomendados

Escreva um programa que leia dois números quaisquer e um caractere representando um operador matemático básico (+,-,x,/), nessa ordem. Imprima o resultado, com duas casas decimais, da operação correspondente ao caractere digitado considerando os números informados, de acordo com a tabela abaixo. Lembre-se de validar o operador (Saída: Operador inválido) e alertar casos de divisão por zero (Saída: Divisão por zero). Sua solução deve conter a estrutura de seleção switch.

Símbolo lido         Operação

    +                        Adição

    -                         Subtração

    x                        Multiplicação

    /                         Divisão

Exemplo 1:

Entrada: 3 5 +

Saída: 8.00

Exemplo 2:

Entrada: 2.5 2 x

Saída: 5.00

Exemplo 3:

Entrada: 3 0 / 

Saída: Divisão por zero

Exemplo 4:

Entrada: 4.2 3 #

Saída: Operador inválido

 

 

 

NÃO CONSEGUI FAZER ESTE EXERCÍCIO alguém ME AJUDA

  • Amei 1
Link para o comentário
Compartilhar em outros sites

  • Moderador

Caro usuário,

 

Seja bem-vindo ao Clube do Hardware.

 

No intuito de servir como fonte de pesquisa no caso de instituições de ensino, informamos que incorrer no resolvimento por completo de questões relacionadas a disciplinas escolares de cursos técnicos e faculdades podem ser revistas e removidas pela Equipe de Moderação do Clube do Hardware.

 

Para sanar dúvidas sobre esse tipo de problema, por gentileza, publique o passo a passo do desenvolvimento da questão, projeto, monografia ou conteúdo em dúvida para que possamos analisar se a resposta está correta ou não, ou para que possa ser auxiliado com a dúvida no desenvolvimento do exercício.

 

Infelizmente, não há como resolver os trabalhos pelos usuários. O objetivo do Clube do Hardware é auxiliar seus usuários a encontrar soluções para que possam sanar suas dúvidas, e não de trazer soluções prontas para seus usuários. Além disso, copiar e colar respostas que não são de autoria própria do qualquer usuário é considerado plágio, o que é ilegal.

 

Esperamos que compreenda.

 

Atenciosamente,

Equipe Clube do Hardware

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • 1 ano depois...

Bom Dia!

 

Em 30/06/2022 às 17:09, Gabrielga_99 disse:

NÃO CONSEGUI FAZER ESTE EXERCÍCIO alguém ME AJUDA

 

Tem o básico de expressões lógicas, aritmética e condicionais.

        If else | == eq | switch | ?: ternário | scanf | printf

 

 

Como Resolver ?

        Escanear-se o dado composto de 2 double como números, 1 char como símbolo da operação (o operador), checa-se com instruções condicionais e fluxo de controle o símbolo\sinal da operação. Deste modo, redireciona-se o programa para os comandos designados pelo símbolo conforme o enunciado no problema (do exercício). 

 

        Sugerem o uso do switch para expressar o fluxo das operações.

 

 

 

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Por exemplo,

 

c'11 - gcc'11.4


#include <stdio.h> /* Include the header file for input and output */

#define NUMERO                  " %lf"
#define OPERADOR                 " %c"
#define ADICAO                     '+'
#define SUBTRACAO                  '-'
#define MULTIPLICACAO              'x'
#define DIVISAO                    '/'
#define RESULTADO(r)   "%.2f%c",r,'\n'

typedef double  Numero;
typedef char  Operador;

int main (void) {
  Numero esquerdo ,direito;
  Operador operacao;

  int l= scanf (NUMERO,&esquerdo);
  int r= scanf (NUMERO,&direito);
  int u= scanf (OPERADOR,&operacao);

  if (l!=1 || r!=1 || u!=1) {
    perror ("Falhou na solicitação");
    return 1;
}
   switch (operacao) {
      case ADICAO :
           esquerdo+= direito;
      break;
      case SUBTRACAO :
           esquerdo-= direito;
      break;
      case MULTIPLICACAO :
           esquerdo*= direito;
      break;
      case DIVISAO :
           if (direito==0.0) {
             printf ("%s%c","Divisão por zero",'\n');
             operacao= 0;
}            
               else
             esquerdo/= direito;
      break;
      default: /* 
                * Operação Inválida 
                */
           printf ("%s%c","Operador Inválido",'\n');
           operacao= 0;
      break;
}
  if (operacao) printf (RESULTADO(esquerdo));
  return 0;
}

...

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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!