Я хочу, чтобы пользователь ввел значение, подобное ADD или SUB, чтобы выполнить желаемую операцию, но я получаю "индекс массива вместо целого числа". Я знаю, что вместо этого я могу вводить цифры, например, 0, 1, 2 и т. Д. c. из-за того, как работают перечисления, но я хочу сделать его более удобным для пользователя. Я также не могу найти в Интернете никакой информации об этом, и мои книги не помогают. Помогите пожалуйста!
#include<stdio.h>
#include<stdlib.h>
int multiply(int , int);
int sum(int, int);
int divide(int, int);
int sub(int, int);
int(*calc[])(type) = {sum, sub, multiply, divide};
enum response{ADD, SUB, MULT, DIV};
enum response type;
int main()
{
int a, b;
char s[4];
printf("Enter two numbers and the operation. Operations: ADD, SUB, MULT, DIV");
scanf("%d %d %s", &a, &b, &s);
printf("The result = %d",(calc[s])(a, b));
return 0;
}
int multiply(int a, int b)
{
return a*b;
}
int sub(int a, int b)
{
return a-b;
}
int sum(int a, int b)
{
return a+b;
}
int divide(int a, int b)
{
return a/b;
}