当前位置: 首页 > news >正文

宁波网站建设科技有限公司漯河网站推广哪家好

宁波网站建设科技有限公司,漯河网站推广哪家好,天津seo实战培训,wordpress修改首页Hello,宝子们#xff01;今天我们来模拟实现一下我们生活中的应用最频繁的工具#xff1a;计算器#xff0c;实现计算器有三种方式。 废话不多说#xff0c;直接上代码#xff0c;计算器的一般实现#xff1a; #include stdio.h int add(int a, int b)//加法函数…Hello,宝子们今天我们来模拟实现一下我们生活中的应用最频繁的工具计算器实现计算器有三种方式。 废话不多说直接上代码计算器的一般实现 #include stdio.h int add(int a, int b)//加法函数 {return a b; } int sub(int a, int b)//减法函数 {return a - b; } int mul(int a, int b)//乘法函数 {return a * b; } int div(int a, int b)//除法函数 {return a / b; } int main() {int x, y;int input 1;int ret 0;do{//首先一上来就打印菜单下面进行选择所以要用到do while 循环结构printf(*************************\n);printf( 1:Add 2:Sub \n);printf( 3:Mul 4:Div \n);printf( 0:Exit \n);printf(*************************\n);printf(请选择);scanf(%d, input);switch (input){case 1:printf(输⼊操作数);scanf(%d %d, x, y);ret add(x, y);printf(ret %d\n, ret);break;case 2:printf(输⼊操作数);scanf(%d %d, x, y);ret sub(x, y);printf(ret %d\n, ret);break;case 3:printf(输⼊操作数);scanf(%d %d, x, y);ret mul(x, y);printf(ret %d\n, ret);break;case 4:printf(输⼊操作数);scanf(%d %d, x, y);ret div(x, y);printf(ret %d\n, ret);break;case 0:printf(退出程序\n);break;default:printf(选择错误\n);break;}} while (input);return 0; }像这样的代码看完之后有什么问题虽然也不影响最后计算的结果但是这样的代码是不是太冗余了case里面重复的代码太多了这还只有加减乘除四个选项要是再多扩张几个选项呢比如,||,,等运算呢所以这样的代码效率太低下不推荐使用。 那有没有比较高效不这么冗余的方法呢当然了这里就要用到我们前面所讲的函数指针数组了如果还不知道函数指针数组是什么的话可以看看我前面讲的这篇文章https://blog.csdn.net/weixin_66058866/article/details/136136008 相信聪明的你看完这篇文章心里应该已经有答案了吧 函数指针数组代码实现如下 #include stdio.h int add(int a, int b) {return a b; } int sub(int a, int b) {return a - b; } int mul(int a, int b) {return a*b; } int div(int a, int b) {return a / b; } int main() {int x, y;int input 1;int ret 0;int(*p[5])(int x, int y) { 0, add, sub, mul, div }; //为了跟菜单里的选项对应起来需要在数组元素中的最前面加了一个元素//这样就不至于出现当我们输入下标为1的元素时访问的是sub这类问题了。do{printf(*************************\n);printf( 1:Add 2:Sub \n);printf( 3:Mul 4:Div \n);printf( 0:Exit \n);printf(*************************\n);printf( 请选择 );scanf(%d, input);if ((input 4 input 1))//判断输入的值是否在选项当中{printf( 输⼊操作数 );scanf( %d %d, x, y);ret (*p[input])(x, y);printf( ret %d\n, ret);}else if(input 0){printf(退出计算器\n);}else{printf( 输⼊有误\n );}}while (input);return 0; }上面我们创建了函数指针数组并且把加减乘除函数的地址都存放进去然后想实现什么运算直接通过下标的方式去调用对应的函数这种方式就很好的解决了代码冗余的问题而且如果你还想再扩张选项的时候也不需要再像第一种方法那样麻烦了。 根据input下标找到对应的函数然后再调用对应的函数这种方法有没有发现它像一个跳板一样在做一个转移的动作所以这种方法也被称为转移表。 那么是否还有其他的方式呢这时候我们就涉及到一种高级的玩法了。 首先来看代码 #include stdio.h int add(int a, int b)//加法函数 {return a b; } int sub(int a, int b)//减法函数 {return a - b; } int mul(int a, int b)//乘法函数 {return a * b; } int div(int a, int b)//除法函数 {return a / b; } void calc(int(*fp)(int x,int y))//使用函数指针来接收函数的地址 {int x0int y0;int ret0;printf(输⼊操作数);scanf(%d %d, x, y);ret fp(x, y);printf(ret %d\n, ret); } int main() {int x, y;int input 1;int ret 0;do{//首先一上来就打印菜单下面进行选择所以要用到do while 循环结构printf(*************************\n);printf( 1:Add 2:Sub \n);printf( 3:Mul 4:Div \n);printf( 0:Exit \n);printf(*************************\n);printf(请选择);scanf(%d, input);switch (input){case 1:calc(Add);//把相对应的函数的地址传过去break;case 2:calc(Sub);break;case 3:calc(Mul);break;case 4:calc(Div);break;case 0:printf(退出程序\n);break;default:printf(选择错误\n);break;}} while (input);return 0; }像这种实现方式你会发现并没有在主函数里直接调用AddSubMulDiv等函数而是把这些函数的地址传给了clac函数然后再calc函数内部通过指针变量来调用calc指向的函数这也是一种回调函数的机制当然这种机制现在理解不了也没关系在之后的深入理解指针4里面我会详细讲到哟 创作不易看完别忘了给博主一键三连哟谢谢大家呀
http://www.zqtcl.cn/news/95603/

相关文章:

  • 柳州正规网站制作公司哪家好怎么学好网站建设
  • 德宏做网站网站的设计思路范文
  • 自己的电脑做网站服务器深圳福田有什么好玩的地方
  • 奕腾网站建设上海十大装修公司排名榜单
  • 简述建设一个网站的基本步骤wordpress欢迎新会员
  • 国外医疗网站模板wordpress主题 科技
  • 海淀企业型网站建设wordpress自定义帖子链接
  • 自己的网站怎么优化做网页的
  • dw设计一个简单网站网页微信版文件传输
  • 网站地图怎么做XML宁波网站建设服务提供商
  • 中石化两学一做网站获取网站域名
  • 吉林长春火车站官网湖北葛洲坝建设工程网站
  • 重庆网站推广服务广告公司女员工深夜兼职
  • 网站的要素是什么wordpress框架解密_day3
  • 抽奖怎么做网站彩页设计公司
  • 推广网站文案素材lamp环境wordpress
  • 合肥网站建设公司 推荐百度下载安装2021
  • 沈阳网站备案照相离婚证app制作软件
  • 唯品会一家做特卖的网站 分析那些网站可以做反链
  • 百度网站排名查询工具网站标签怎么做
  • 如何用ps做网站导航一个网站开发时间
  • 合肥城乡建设网站06628 网页制作与网站建设
  • 网站设计岗位的职责与要求北京网站建设 合一
  • 网站制作app开发公司网站建设 英文
  • 毕业设计网页制作网站建设网站预约挂号怎么做
  • 河东天津网站建设永州做网站的公司
  • 网页制作与网站建设填空题免费的企业邮箱怎么申请
  • 智慧农业网站建设沈阳建设信息网
  • 永久免费素材网站个人网站域名所有权
  • 做网站都需要什么工具网站开发培训哪里好