#include <stdio.h>
void add(double a, double b) {
printf("%.2f + %.2f = %.2f\n", a
, b
, a
+ b
); }
void subtract(double a, double b) {
printf("%.2f - %.2f = %.2f\n", a
, b
, a
- b
); }
void multiply(double a, double b) {
printf("%.2f * %.2f = %.2f\n", a
, b
, a
* b
); }
void divide(double a, double b) {
if (b != 0) {
printf("%.2f / %.2f = %.2f\n", a
, b
, a
/ b
); } else {
puts("Error: Division by zero."); }
}
int main(void) {
void (*operations[4])(double, double) = {add, subtract, multiply, divide};
int choice;
double n1, n2;
printf("Choose: 0 (Add), 1 (Subtract), 2 (Multiply), 3 (Divide): ");
if (choice >= 0 && choice <= 3) {
printf("Enter two numbers: "); scanf("%lf %lf", &n1
, &n2
); (*operations[choice])(n1, n2);
} else {
puts("Invalid selection."); }
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+Cgp2b2lkIGFkZChkb3VibGUgYSwgZG91YmxlIGIpIHsKICAgIHByaW50ZigiJS4yZiArICUuMmYgPSAlLjJmXG4iLCBhLCBiLCBhICsgYik7Cn0KCnZvaWQgc3VidHJhY3QoZG91YmxlIGEsIGRvdWJsZSBiKSB7CiAgICBwcmludGYoIiUuMmYgLSAlLjJmID0gJS4yZlxuIiwgYSwgYiwgYSAtIGIpOwp9Cgp2b2lkIG11bHRpcGx5KGRvdWJsZSBhLCBkb3VibGUgYikgewogICAgcHJpbnRmKCIlLjJmICogJS4yZiA9ICUuMmZcbiIsIGEsIGIsIGEgKiBiKTsKfQoKdm9pZCBkaXZpZGUoZG91YmxlIGEsIGRvdWJsZSBiKSB7CiAgICBpZiAoYiAhPSAwKSB7CiAgICAgICAgcHJpbnRmKCIlLjJmIC8gJS4yZiA9ICUuMmZcbiIsIGEsIGIsIGEgLyBiKTsKICAgIH0gZWxzZSB7CiAgICAgICAgcHV0cygiRXJyb3I6IERpdmlzaW9uIGJ5IHplcm8uIik7CiAgICB9Cn0KCmludCBtYWluKHZvaWQpIHsKICAgIHZvaWQgKCpvcGVyYXRpb25zWzRdKShkb3VibGUsIGRvdWJsZSkgPSB7YWRkLCBzdWJ0cmFjdCwgbXVsdGlwbHksIGRpdmlkZX07CiAgICBpbnQgY2hvaWNlOwogICAgZG91YmxlIG4xLCBuMjsKCiAgICBwcmludGYoIkNob29zZTogMCAoQWRkKSwgMSAoU3VidHJhY3QpLCAyIChNdWx0aXBseSksIDMgKERpdmlkZSk6ICIpOwogICAgc2NhbmYoIiVkIiwgJmNob2ljZSk7CgogICAgaWYgKGNob2ljZSA+PSAwICYmIGNob2ljZSA8PSAzKSB7CiAgICAgICAgcHJpbnRmKCJFbnRlciB0d28gbnVtYmVyczogIik7CiAgICAgICAgc2NhbmYoIiVsZiAlbGYiLCAmbjEsICZuMik7CiAgICAgICAgKCpvcGVyYXRpb25zW2Nob2ljZV0pKG4xLCBuMik7CiAgICB9IGVsc2UgewogICAgICAgIHB1dHMoIkludmFsaWQgc2VsZWN0aW9uLiIpOwogICAgfQogICAgcmV0dXJuIDA7Cn0=