自学内容网 自学内容网

(C语言)用函数指针数组实现计算器

一、运算结果;

二、源代码;

# define _CRT_SECURE_NO_WARNINGS
# include <stdio.h>

//实现目录函数;
void menum()
{
//打印目录;
printf("***********************************************\n");
printf("*************   1.Add   2.Sub   ***************\n");
printf("*************   3.Mul   4.Div   ***************\n");
printf("******************   0.exit  ******************\n");
printf("***********************************************\n");
}

//实现加法函数;
int Add(int x, int y)
{
//计算并返回值;
return x + y;
}

//实现减法函数;
int Sub(int x, int y)
{
//计算并返回值;
return x - y;
}

//实现乘法函数;
int Mul(int x, int y)
{
//计算并返回值;
return x * y;
}

//实现除法函数;
int Div(int x, int y)
{
//计算并返回值;
return x / y;
}

//实现计算器函数;
void Calc(int (*pf) (int, int))
{
//初始化变量值;
int x = 0;
int y = 0;
int ret = 0;

//提示用户输入操作数;
printf("请输入2个操作数:--->");
//获取用户输入的操作数;
scanf("%d %d", &x, &y);

//根据用户计算要求不同,选用不同的计算函数;
ret = pf(x, y);

//打印结果;
printf("%d\n", ret);

}

int main()
{
//初始化变量值;
int input = 0;
int x = 0;
int y = 0;
int ret = 0;

//创建函数指针数组;
int (*pfarr[5]) (int, int) = { 0, Add, Sub, Mul, Div };

//用do....while实现计算机判断计算;
do
{
//调用目录函数;
menum();

//提示用户做出选择;
printf("请做出选择:---->");
//获取用户输入的数据;
scanf("%d", &input);

//用if实现计算机判断;

//当input==0时,退出运算;
if (input == 0)
{
//提示用户退出运算;
printf("提出计算器!!!!");
}
//根据input不同的值,做出相应的判断;
else if (input >= 1 && input <= 4)
{
//提示用户输入要计算的数;
printf("请输入两个要执行运算的操作数:---->");
//获取用户输入的操作数;
scanf("%d %d", &x, &y);
//根据不同的input值用函数指针数组做出不同的判断运算;
ret = pfarr[input](x, y);
//打印结果;
printf("%d\n", ret);
}


} while (input);

return 0;
}


原文地址:https://blog.csdn.net/m0_67184754/article/details/135618361

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!