该程序是对函数指针数组和函数指针的巩固和练习。
两种实现方法:
函数指针数组
首先进入菜单,若选择0退出,选择在1到7之间,进行下一步。选择其他选项,则重新进行选择。1到7分别对应不同的算法,选择想要达到的算法效果并赋值到input中,将不同的算法函数放到一个数组中,input作为数组下标对应相应的算法函数(例如,input=1,代表想要进行加法运算,故数组中下标为1的元素应该对应进行加法运算的函数),故选择不同的算法就可以通过下标访问数组中不同的函数。
函数指针
进入菜单,进行选择,选择1到7,则进入计算器,选择0,退出计算器,选择了其他,则重新进行选择,由于有多条分支所以用Switch语句来实现。此外因为算完一次后和选错这两种情况都需要重新进行选择是否再次进去计算器,所以在Switch语句外套用do...while循环(选择退出计算器的选项为0,所以选择0后while的循环条件为假,故不进入循环)。
自定义count函数,这个函数的参数是函数指针,可调用不同的函数(即采用不同的算法)。
进入Switch语句后,通过input的值进入不同的case语句中,input的值与想要达到的算法效果保持一致(例如input=1,为加法,input=2,为减法),进入case语句后调用count函数,并传想要达到的算法效果的函数指针(例如:进入case1中,想要达到加法效果,就将add函数指针传到count函数中)