首页 > 其他分享 >经典函数指针应用 函数指针回调

经典函数指针应用 函数指针回调

时间:2023-05-28 20:01:05浏览次数:64  
标签:Calc int 经典 break printf input 函数指针 回调

void Manu()
{
printf("**************************************\n");
printf("********* 1.Add 2.Sub ******\n");
printf("********* 3.Nul 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 Nul(int x, int y)
{
return x * y;
}
int Div(int x, int y)
{
return x / y;
}
void Calc(int (*pf)(int, int))
{
int x, y = 0;
printf("请输入两组操作数:");
scanf("%d%d", &x, &y);
printf("(x, y) = %d\n", pf(x, y));
}
int main()
{
int input = 0;
do
{
Manu();
printf("请选择:>");
scanf("%d", &input);
//int (*pfarr[])(int, int) = { 0,Add,Sub,Nul,Div };//转移表 函数指针数组
//if (input > 0 && input < 5)
//{
// printf("请输入两组操作数: ");
// scanf("%d%d", &x, &y);
// printf("%d\n", pfarr[input](x, y));
//}
//else if (input == 0)
// printf("退出\n");
//else
// printf("选择错误!\n");
switch (input)
{
case 1:
Calc(Add);//函数回调 解决代码冗余(重复)
break;
case 2:
Calc(Sub);
break;
case 3:
Calc(Nul);
break;
case 4:
Calc(Div);
break;
case 0:
printf("退出\n");

break;
default:
printf("选择错误\n");
break;
}

} while (input);
return 0;
}

标签:Calc,int,经典,break,printf,input,函数指针,回调
From: https://www.cnblogs.com/zrk-8008/p/17438738.html

相关文章

  • Github疯传!200本计算机经典书籍!
    好书在精不在多,每一本经典书籍都值得反复翻阅,温故而知新!下面分享几本计算机经典书籍,都是我自己看过的。重构改善既有代码的设计就像豆瓣评论所说的,看后有种醍醐灌顶、欲罢不能的感觉。无论你是初学者,还是深耕多年的老手,这本书都值得你深度品读。作者有丰富的编程经验和思想,总......
  • 通达信-维宏股份的黄金回调
    买了两次,最终还是没赚到钱,卖飞了。时候总结下:     ......
  • 近万条一级分类经典短信大全ACCESS\EXCEL数据库
    近万条一级分类经典短信大全ACCESS数据库收集的是近万条常用经典短信,之所以称“一级分类”(意思是只有一个大类没有子类),原因是为了区别另外一个有二级分类的短信数据库。近万条一级分类经典短信大全ACCESS数据库中的短信都是经过索引没有收录重复的记录。大类分类情况是:爱情短信(1......
  • 〈数据库设计入门经典〉之第一章笔记
        现在,来写一下我看了前三章的体验吧!GO! 第一章数据库建模的过去与现在    呼呼,这一章基本都是在讲一些概念性的东西,所以,应该也没什么感想可写,那就再摘一点“苹果”来分享好了,Ready?GO!数据库:数据库是信息的集合——较为相关的信息和组织良好的信息。数据库由在安......
  • 《数据库设计入门经典》之第二章笔记
        上一次我摘了些第一章的内容,整理成了笔记,不知道对大家有没有点帮助啊,呵呵...第一章主要是讲了些概念上的东西,让大家对基本的概念有点理解,没有摘完全,只是选了我觉得有概括性的语句。现在,来写写第二章的笔记吧,Ready??GO!     第二章 工作场所中的数据库建模   ......
  • 《数据库设计入门经典》之前言
       首先,先介绍一下这本书的作者与一些这本书的基本内容吧。。。   《数据库设计入门经典》作者:GavinPowell(美)                                              译者:沈吉王洪波赵恒                  ......
  • 《数据库设计入门经典》之第三章笔记
        上一次写了一点第二章的笔记,强调了在做数据库模型的设计时要注意“人”的作用,这一次,来说点正题。第三章的主题目是:数据库建模构件块,看过了以后觉得有些还是在讲数据库的概念性东西,不过,就算是学过了也还是要看一遍,我们总是容易高估自己的记忆,其实很多时候,一些很基础的东西你......
  • 字符串原地修改双指针经典实现
    字符串原地修改经常遇到的一类题,双指针一个用于写入,一个用于扫描,互不干扰,各司其职。题目:https://leetcode.cn/problems/reverse-words-in-a-string/stringreverseWords(strings){reverse(s.begin(),s.end());intwrite=0,scan=0;while......
  • mac经典酷跑游戏:神庙逃亡 for mac 中文免激活版
    神庙逃亡是一款非常受欢迎的冒险类游戏,玩家需要扮演一个勇敢的角色,在神秘的地下墓穴中闯荡。在游戏中,玩家需要躲避陷阱和怪物,解决谜题,找到通往下一层的出口。这个游戏有多个版本,每个版本都有不同的场景和挑战。玩家可以通过收集金币和道具来增强自己的能力和生命值,从而更好地应对即......
  • 前缀和经典问题整理
    1、一般形式 --  区域和检索-数组不可变classNumArray:def__init__(self,nums:List[int]):self.pre=[0]fornuminnums:self.pre.append(self.pre[-1]+num)####或者#####self.pre=list(accumulate(num......