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

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

#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参数,且返回值也是double
double(*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]指针中
运行结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值