Advertisement
jacknpoe

Calculadora com polimorfismo em tempo de execução em C

Feb 5th, 2024 (edited)
857
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.02 KB | Source Code | 0 0
  1. #include <stdio.h>
  2. #include <locale.h>
  3.  
  4. double soma(double num1, double num2) { return num1 + num2; }
  5. double subtracao(double num1, double num2) { return num1 - num2; }
  6. double multiplicacao(double num1, double num2) { return num1 * num2; }
  7. double divisao(double num1, double num2) { return num1 / num2; }
  8.  
  9. int main() {
  10.     double numero1, numero2;
  11.     int operacaoSelecionada;
  12.  
  13.     double (*operacoes[4]) (double num1, double num2);
  14.     operacoes[0] = soma;
  15.     operacoes[1] = subtracao;
  16.     operacoes[2] = multiplicacao;
  17.     operacoes[3] = divisao;
  18.    
  19.     setlocale( LC_ALL, "");     // caracteres acentuados
  20.  
  21.     printf("Escolha uma operação: 0: adição, 1: subtração, 2: multiplicação, 3: divisão: ");
  22.     scanf("%i", &operacaoSelecionada);
  23.     if(operacaoSelecionada < 0 || operacaoSelecionada > 3) {
  24.         printf("Operação incorreta!\n");
  25.         return -1;
  26.     }
  27.  
  28.     printf("Número 1: ");
  29.     scanf("%lf", &numero1);
  30.  
  31.     printf("Número 2: ");
  32.     scanf("%lf", &numero2);
  33.    
  34.     printf("Resultado: %f\n", (*operacoes[operacaoSelecionada])(numero1, numero2));
  35. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement