Advertisement
Guest User

Calc.cxx

a guest
May 26th, 2018
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.71 KB | None | 0 0
  1. #define SOMA 1
  2.  
  3. #define SUBTRACAO 2
  4.  
  5. #define DIVISAO 3
  6.  
  7. #define MULTIPLICACAO 4
  8.  
  9. #include <stdio.h>
  10.  
  11. int escolher_operacao(void)
  12. {
  13.     int opcao_operacao;
  14.  
  15.     puts("\nEscolha a operação desejada: ");
  16.  
  17.     puts("1- Soma");
  18.  
  19.     puts("2- Subtração");
  20.  
  21.     puts("3- Divisão");
  22.  
  23.     puts("4- Multiplicação");
  24.  
  25.     scanf("%d", &opcao_operacao);
  26.  
  27.     return opcao_operacao;
  28. }
  29.  
  30. char exibir_operador(int id_operacao)
  31. {
  32.     char operador;
  33.     switch (id_operacao)
  34.     {
  35.     case SOMA:
  36.         operador = '+';
  37.         break;
  38.  
  39.     case SUBTRACAO:
  40.         operador = '-';
  41.         break;
  42.  
  43.     case DIVISAO:
  44.         operador = '/';
  45.         break;
  46.  
  47.     case MULTIPLICACAO:
  48.         operador = '*';
  49.     }
  50.  
  51.     return operador;
  52. }
  53.  
  54. int main(void)
  55. {
  56.     int opcao_programa;
  57.     int opcao_operacao;
  58.     float n1, n2;
  59.     float resultado;
  60.     char resposta;
  61.  
  62.     while (1)
  63.     {
  64.         puts("1- Iniciar calculadora");
  65.         puts("2- Sair");
  66.         scanf("%d", &opcao_programa);
  67.  
  68.         if (opcao_programa == 2)
  69.             break;
  70.  
  71.         // Leitura dos operandos antecipada.
  72.         printf("\nDigite o primeiro número: ");
  73.         scanf("%f", &n1);
  74.         printf("\nDigite o segundo número: ");
  75.         scanf("%f", &n2);
  76.  
  77.         opcao_operacao = escolher_operacao();
  78.         switch (opcao_operacao)
  79.         {
  80.         case SOMA:
  81.             resultado = n1 + n2;
  82.             break;
  83.  
  84.         case SUBTRACAO:
  85.             resultado = n1 - n2;
  86.             break;
  87.  
  88.         case DIVISAO:
  89.             if (!n2)
  90.             {
  91.                 fprintf(stderr, "\nNão é possível realizar divisão por zero.\n");
  92.                 continue;
  93.             }
  94.             else
  95.             {
  96.                 resultado = n1 / n2;
  97.             }
  98.             break;
  99.  
  100.         case MULTIPLICACAO:
  101.             resultado = n1 * n2;
  102.             break;
  103.  
  104.         default:
  105.             fprintf(stderr, "\nOperação inválida.\n");
  106.         }
  107.  
  108.         printf("\nO resultado da operação %.2f %c %.2f é %.2f\n", n1, exibir_operador(opcao_operacao), n2, resultado);
  109.         printf("\nDeseja realizar outra operação? [s/n] ");
  110.         scanf("\n%c", &resposta);
  111.  
  112.         if (resposta == 'n')
  113.             break;
  114.     }
  115. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement