您的位置:首页 > 其它

小型计算器

2017-11-20 11:22 92 查看
思想:

利用转移表实现计算器功能,实现之前先来补充一下转移表知识

转移表(函数指针数组)

将函数的地址存到一个数组中,那这个数组就叫函数指针数组,那函数指针的数组 如何定义呢?

int (* parr1[10]])();

int* parr210; int (* )() parr3[10];

答案是:parr1 parr1先和[]结合,说明parr1是数组,数组的内容是什么呢? 是int (*)()类型的函数指针。

代码

#include<stdio.h>

void menu()
{
printf("*************************\n");
printf("*   1.Add        2.Sub  *\n");
printf("*   3.Mul        4.Div  *\n");
printf("*         0.quit        *\n");
printf("*************************\n");
}
int  my_add(int x,int y)
{
return x+y;
}

int  my_sub(int x,int y)
{
return x-y;
}

int  my_mul(int x,int y)
{
return x*y;
}

int  my_div(int x,int y)
{
return x/y;
}
int main()
{
int input = 1;
int (*arr[5])(int x,int y)={' ',my_add,my_sub,my_mul,my_div};
int res=0;
int x,y;
while(input)
{
menu();
printf("\nPlease select:");
scanf("%d",&input);
if(input >0 && input <5){

printf("\nPlease enter two number:");
scanf("%d %d",&x,&y);
res=(*arr[input])(x,y);

}else if(input==0){
printf("Start  quit!\n");
break;

}else{

printf("enter erro!\n\n\n\n");
continue;
}
printf("res:%d\n\n\n\n",res);
}

return 0;

}


功能测试

开始



计算



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  函数 指针