我正在编写一些应该使用用户选择的数学函数(来自math.h)的代码。我有类似
的东西printf("If you want to use sin, press 's'\n"
"If you want to use cosh, press 'c'\n");
do choice = getchar();
while (choice != 's' && choice != 'c');
如何存储用户选择的功能?我希望在一些变量fun
中使用它,然后通过编写fun(x)
在计算中使用它,但不知道如何执行此操作。请帮助!
答案 0 :(得分:1)
double (*proc)(double x) = NULL;
if (choice == 's') proc = sin;
else if (choice == 'c') proc = cosh;
// ...
double y = proc(x):
答案 1 :(得分:0)
你需要函数指针。函数指针就像指向可以执行的代码的指针。因此,例如,你可以有一个函数指针,它接受所有带一个double并返回一个的函数(例如sin,cos,sqrt,tan,arctan等)。在这些类型的菜单场景中,使用数组通常是最好的:
double (*funcs)(double)[] = {&sin, &cosh}
char choice;
printf("If you want to use sin, press '1'\n"
"If you want to use cosh, press '2'\n");
do choice = getchar();
while (choice != '1' && choice != '2');
char choice2[2] = {choice, '\0'};
funcs[atoi(choice2)-1](operand);