SSD6 Exercise0: 函数指针数组的使用实例

来源:互联网 发布:怎么修改tomcat的端口 编辑:程序博客网 时间:2024/05/19 22:28

程序用途:提示使用者输入两个数字,然后进行简单的计算(加减乘除和平方)

#include <stdio.h>#include <stdlib.h>#include <math.h>double Add(double x,double y){return x+y;}double Sub(double x,double y){return x-y;}double Mul(double x,double y){return x*y;}double Div(double x,double y){return x/y;}//五个函数指针的数组,这些函数需要两个double参数,且返回值也是doubledouble(*funTable[5])(double,double)={Add,Sub,Mul,Div,pow};//字符串指针的数组char *magTable[5]={"Sum","Difference","Product","Quotient","Power"};int main(){int i;double x=0,y=0;printf("Enter two operands for some arithmetic:\n");if(scanf("%lf %lf",&x,&y)!=2)    printf("Invalid input.\n");//使用函数指针数组调用函数for(i=0;i<5;++i){    printf("%10s:%6.2f\n",magTable[i],funTable[i](x,y));    }    return 0;}

函数指针数组的应用:
double(*funTable[5])(double,double)={Add,Sub,Mul,Div,pow};,
声明并初始化了一个包含五个函数指针的数组,这些函数都是需要两个double类型参数,且返回值也都是double类型
for(i=0;i<5;++i){
printf(“%10s:%6.2f\n”,magTable[i],funTablei);
}
使用该函数指针数组,其中funTablei表达式会调用函数,这些函数的地址保存在funcTable[i]指针中
运行结果

原创粉丝点击