#include <stdio.h>

void add(double number1, double number2)
{
    printf("\nAddition\n");
    printf("%.2f + %.2f = %.2f\n",
           number1,
           number2,
           number1 + number2);
}

void subtract(double number1, double number2)
{
    printf("\nSubtraction\n");
    printf("%.2f - %.2f = %.2f\n",
           number1,
           number2,
           number1 - number2);
}

void multiply(double number1, double number2)
{
    printf("\nMultiplication\n");
    printf("%.2f * %.2f = %.2f\n",
           number1,
           number2,
           number1 * number2);
}

void divide(double number1, double number2)
{
    printf("\nDivision\n");

    if (number2 == 0)
    {
        printf("Cannot divide by zero.\n");
    }
    else
    {
        printf("%.2f / %.2f = %.2f\n",
               number1,
               number2,
               number1 / number2);
    }
}

int main(void)
{
    void (*operations[4])(double, double) =
    {
        add,
        subtract,
        multiply,
        divide
    };

    int choice;
    double number1;
    double number2;

    printf("Enter 0 to add\n");
    printf("Enter 1 to subtract\n");
    printf("Enter 2 to multiply\n");
    printf("Enter 3 to divide\n");

    scanf("%d", &choice);

    if (choice < 0 || choice > 3)
    {
        printf("Invalid choice.\n");
    }
    else
    {
        printf("Enter two numbers: ");
        scanf("%lf %lf", &number1, &number2);

        (*operations[choice])(number1, number2);
    }

    return 0;
}
