今天教大家写的计算器很简单,是刚入坑的萌新,看的之后,也能写的。

废话不多说,给大家看一看效果先:

计算器

大家看完效果感觉还可以的话,可以继续学下去,毕竟是得萌新学的,所以说代码挺简单的,并且非常详细,保证看了就会。

老套路了,先分步骤

1.定义头文件

2.定义主函数

3.定义需要的值

4.定义计算函数

5.定义第1次的计算

6.定义之后几次是否计算的判定函数

7.定义之后几次的判定

8.打印最后的结果

9.完整代码


1.定义头文件

   这里我们需要定义一个头文件,老熟人了,想必大家都会吧。

#include<stdio.h>//定义stdio.h头文件

2.定义主函数

其实我感觉这两步都可以省略了。

int mian()//主函数不用讲了吧?
{return 0;
}

3.定义需要的值

这里我们需要定义第1个计算数与第2个计算数,和我们的判决数与运算符号。

{float one_sum,//定义第1个计算数-用float类型可以打印小数two_sum;//定义第2个计算数-用float类型可以打印小数short shi_fou;//定义判定数-判定数不需要小数,可以用int类型,但是用short,省空间char  yun_suan_fu;//定义运算符号-运算符号是字符,所以说需要用char类型
}

4.定义计算函数

这个函数需要传进两个运算数,与一个运算字符,用switch()函数来判定加减乘除,顺便别人不小心打错的话, 可以报个错,保留上一次的值。

(float) 强制转换类型以防报错。

 注意,有return,就不需要break了。

float JiSuan(const float one_sum, const float two_sum,const char yun_suan_fu)//定义计算函数
{switch(yun_suan_fu)//写switch()函数用来判定运算符号{case'+'://加return (float)(one_sum + two_sum);//返回第1个计算数加第2个计算数的值case'-'://减return (float)(one_sum - two_sum);//返回第1个计算数减第2个计算数的值case'*'://乘return (float)(one_sum * two_sum);//返回第1个计算数乘第2个计算数的值case'/'://除return (float)(one_sum / two_sum);//返回第1个计算数除第2个计算数的值}printf("计算错误,结果自动为上一次的运算成果\n");//有人闲的蛋疼,乱打别的东西,所以报个提示return one_sum;//返回报错后的值-上一次的结果
}

5.定义第1次的计算

这名是我们第1次运算的过程,用printf()函数告诉用户该干什么?,用scanf_s()函数用来赋值, 用getchar()函数给运算符号赋值。

用if()函数,在第1次运算的时候,给第1个计算数赋值,后面就通过第1次的运算结果,与第2个计算数运算。

{printf("欢迎打开计算器\n"); //让用户知道登了什么软件for (int i = 1;; i++)//一个死循环{if (i == 1)//第1次进入开始{printf("请输入您的第一个数:");//打印提示与输入第1个计算数的地方scanf_s("%f", &one_sum);//给第1个计算数赋值}printf("请输入您的运算符:");//打印提示与输入运算符号的地方setbuf(stdin, NULL);//清空缓存区-防止下面的赋值赋到回车yun_suan_fu = getchar(); //给运算符号赋值printf("请输入您的第二个数:");//打印提示与输入第2个计算数的地方setbuf(stdin, NULL);//清空缓存区-防止下面的赋值赋到回车scanf_s("%f", &two_sum);//给第2个计算数赋值one_sum = JiSuan(one_sum, two_sum, yun_suan_fu);//把第1个计算数与第2个计算数计算的结果放到第1个计算数里printf("这次的运算成果是%.2f(会自动四舍五入至小数点后两位)\n", one_sum);//打印每一次的运算成果-%.2f-四舍五入至小数点后两位-四舍五入为了美观
}

6.定义之后几次是否计算的判定函数

首先先声明几句话,然后再让用户选择,然后再传过来就OK了。传进去的i,纯属为了让用户知道计算次数,好让用户知道计算到第几次了,贴心的一批。

short ShiFou(const int i)//定义判定数-声明判定条件函数
{short shi_fou;//定义判定数-判定数不需要小数,可以用int类型,但是用short,省空间-因为是局部变量,出去就会被销毁,所以不用担心冲突printf("是否继续计算?\n");//打印是否继续printf("结束请输0,");//打印-判定条件printf("继续请输1,");//打印-判定条件printf("重来请输2\n");//打印-判定条件-加回车-为了美观printf("%d.请输入:",i);//打印提示与判定数的地方setbuf(stdin, NULL);//清空缓存区-防止下面的赋值赋到回车scanf_s("%hd", &shi_fou);//给判定数赋值return shi_fou;//返回判定数
}

7.定义之后几次的判定

利用函数的返回值,作判定,等于1是继续,但继续的话不需要任何东西,于是在最后找茬上加个条件不等于1,就可以完美的不出bug。

{else//第1次以后判定想不想继续计算-利用判定数判定条件{shi_fou = ShiFou(i);//储存判定数if (shi_fou == 0)//等于0时,终止break;//离开这个循环-用于退出else if (shi_fou == 2)//不等于0,但等于2时,重新开始{i = 0;//重置循环,与下面的跳过本次循环连起来一起用,跳过之后他会自加1,所以设置为0不是1continue;//跳过本次循环-本次循环下面的代码都不会运作}else if(shi_fou != 1)//不等于0,不等于2,不等于1时,那他就是故意找茬了,可以用打印函数打印一句,说他闲的话。{printf("他奶奶地,找茬是不是?\n"); //说他闲的话break;//离开这个循环-用于退出}}
}

8.打印最后的结果

        最后肯定得给用户一个明确的结果。然后就完成了,是不是很简单?

{printf("最终的运算成果是%.2f(会自动四舍五入至小数点后两位)\n", one_sum);//打印最终的运算成果-%.2f-四舍五入至小数点后两位-四舍五入为了美观
}

9.完整代码

应该也只有我会把这么简单的代码讲解这么详细,易懂了,制作不易,求三连。

#include<stdio.h>//定义stdio.h头文件float JiSuan(const float one_sum, const float two_sum,const char yun_suan_fu)//定义计算函数
{switch (yun_suan_fu)//写switch()函数用来判定运算符号{case'+'://加return (float)(one_sum + two_sum);//返回第1个计算数加第2个计算数的值case'-'://减return (float)(one_sum - two_sum);//返回第1个计算数减第2个计算数的值case'*'://乘return (float)(one_sum * two_sum);//返回第1个计算数乘第2个计算数的值case'/'://除return (float)(one_sum / two_sum);//返回第1个计算数除第2个计算数的值}printf("计算错误,结果自动为上一次的运算成果\n");//有人闲的蛋疼,乱打别的东西,所以报个提示return one_sum;//返回报错后的值-上一次的结果
}short ShiFou(const int i)//定义判定数-声明判定条件函数
{short shi_fou;//定义判定数-判定数不需要小数,可以用int类型,但是用short,省空间-因为是局部变量,出去就会被销毁,所以不用担心冲突printf("是否继续计算?\n");//打印是否继续printf("结束请输0,");//打印-判定条件printf("继续请输1,");//打印-判定条件printf("重来请输2\n");//打印-判定条件-加回车-为了美观printf("%d.请输入:",i);//打印提示与判定数的地方setbuf(stdin, NULL);//清空缓存区-防止下面的赋值赋到回车scanf_s("%hd", &shi_fou);//给判定数赋值return shi_fou;//返回判定数
}int main()//主函数不用讲了吧?
{float one_sum,//定义第1个计算数-用float类型可以打印小数two_sum;//定义第2个计算数-用float类型可以打印小数short shi_fou;//定义判定数-判定数不需要小数,可以用int类型,但是用short,省空间char  yun_suan_fu;//定义运算符号-运算符号是字符,所以说需要用char类型printf("欢迎打开计算器\n"); //让用户知道登了什么软件for (int i = 1;; i++)//一个死循环{if (i == 1)//第1次进入开始{printf("请输入您的第一个数:");//打印提示与输入第1个计算数的地方scanf_s("%f", &one_sum);//给第1个计算数赋值}else//第1次以后判定想不想继续计算-利用判定数判定条件{shi_fou = ShiFou(i);//储存判定数if (shi_fou == 0)//等于0时,终止break;//离开这个循环-用于退出else if (shi_fou == 2)//不等于0,但等于2时,重新开始{i = 0;//重置循环,与下面的跳过本次循环连起来一起用,跳过之后他会自加1,所以设置为0不是1continue;//跳过本次循环-本次循环下面的代码都不会运作}else if(shi_fou != 1)//不等于0,不等于2,不等于1时,那他就是故意找茬了,可以用打印函数打印一句,说他闲的话。{printf("他奶奶地,找茬是不是?\n"); //说他闲的话break;//离开这个循环-用于退出}}printf("请输入您的运算符:");//打印提示与输入运算符号的地方setbuf(stdin, NULL);//清空缓存区-防止下面的赋值赋到回车yun_suan_fu = getchar(); //给运算符号赋值printf("请输入您的第二个数:");//打印提示与输入第2个计算数的地方setbuf(stdin, NULL);//清空缓存区-防止下面的赋值赋到回车scanf_s("%f", &two_sum);//给第2个计算数赋值one_sum = JiSuan(one_sum, two_sum, yun_suan_fu);//把第1个计算数与第2个计算数计算的结果放到第1个计算数里printf("这次的运算成果是%.2f(会自动四舍五入至小数点后两位)\n", one_sum);//打印每一次的运算成果-%.2f-四舍五入至小数点后两位-四舍五入为了美观}printf("最终的运算成果是%.2f(会自动四舍五入至小数点后两位)\n", one_sum);//打印最终的运算成果-%.2f-四舍五入至小数点后两位-四舍五入为了美观return 0;
}

刚开始接触编程也能轻松写的计算器代码(VS2019)(c语言)相关推荐

  1. Java编程高手教你写出完美代码

    点关注,不迷路:持续更新Java架构相关技术及资讯热文!!! 近期小编在学员中,发现很多人不喜欢写代码.记住基础代码.在一周前写过的Java代码,一周后还能记住多少?那么Java程序员如何做到爱上代码 ...

  2. python写科学计算器代码_Python编程使用tkinter模块实现计算器软件完整代码示例...

    Python编程使用tkinter模块实现计算器软件完整代码示例 来源:中文源码网    浏览: 次    日期:2018年9月2日 Python编程使用tkinter模块实现计算器软件完整代码示例 ...

  3. 一个比较好的Java写的计算器代码

    自己也写的一个计算器,思考的过程如下: 1. 界面基本上没什么问题,再写到运算操作时候碰到问题了,当捕获运算符操作,这时,因为这个时候只输入了一个数,不能进行加减乘除运算,(关键)所以先判断运算符,默 ...

  4. 当程序员写不出代码了,该怎么办?

    点击上方"CSDN",选择"置顶公众号" 关键时刻,第一时间送达! 作为一名身经百战的程序员,自早上来,不知不觉,已经对着电脑 n 个小时了.敲键盘也成为一种负 ...

  5. 第0课第2节_刚接触开发板之烧写裸板程序

    第0课第2节_刚接触开发板之烧写裸板程序 tftp用法 q //退出菜单 help tftp print //显示IP set ipaddr 192.168.31.203 //设置开发板IP set ...

  6. 刚开始学习编程的迷茫、痛苦是必然的?!。

    其实,学编程就是这样,刚开始肯定是要糊涂一段时间的.在学习软件编程之前,我们大概都学了十几年的语文.数学,但是忽然接触以前从来没见过.没听过.更没写过的编程语言,还真的是措手不及啊.       我刚 ...

  7. java没思路_Java编程没思路写不出代码怎么办

    成功不是你想要就能得到的,而是需要你不断努力争取的.时间飞逝转眼间已经学习java编程近一个月了.从零基础到现在能够自己独立完成一段完整的代码,成就感驱使着我学习更多的知识,做出更加优秀的作品. 1. ...

  8. ubuntu c 判断程序是否启动_刚刚接触编程的我,怎么判断自己是否适合做一个程序员?...

    其实对于这个问题,很多刚刚进入大学选择计算机相关专业的小伙伴都会有类似的疑惑,不知道自己该不该学习编程,适不适合学习编程,以后走程序员这条路适不适合自己等等.那么今天,笔者在这里简单来说一下:我们如何 ...

  9. 怎么才能学好Java编程写好Java代码?

    动力节点Java培训最新上线Java实验班,等你来测试自己适不适合学习Java编程哦! 刚刚接触Java编程的朋友总会遇到一些情况,比如:跟着Java基础教程看过一遍后,自己写代码的时候却无从下手:写 ...

  10. 编程同写作,写代码只是在码字

    编程同写作,写代码只是在码字 原文作者: Phodal Huang  原文链接 看到一篇文章<We Are Typists First, Programmers Second>,日期是20 ...

最新文章

  1. 谷歌开放语音命令数据集,助力初学者利用深度学习解决音频识别问题
  2. 传感器数据完善 AI 功能,激起机器人“网络效应”
  3. 关闭Delphi的RTTI
  4. 使用echo输出一绝对路径,使用egrep取出其基名
  5. Scala的Higher-Kinded类型
  6. 【POJ - 2255】Tree Recovery (给定树的先序中序,输出后序)
  7. Java统计做题正确率_ResNet:训练期间的准确率为100%,但使用相同数据的预测准确率为33%...
  8. php--字符串常用函数
  9. Python编程笔记(第一篇)Python基础语法
  10. SMO算法是干什么的?有什么作用?
  11. 清北2017夏令营考试 day2
  12. 《SSCOM串口/网络数据调试器》
  13. PHP读dwg,dwg文件阅读器
  14. 画法几何及计算机制图,画法几何及机械制图(第2版)范思冲-第十二章 计算机绘图基础.pptx...
  15. 最新消息,CDRX7冰点价再返现,你知道么?
  16. Thinkpad SL400 功能键介绍
  17. lame库(iOS 和 Android)
  18. python中排序英文单词怎么写_Python 排序最长英文单词链(列表中前一个单词末字母是下一个单词的首字母)...
  19. ubuntu 14.04源更新(sources.list)
  20. 计算机专业新老生交流会ppt,新老生交流会ppt模板

热门文章

  1. Win7下64位扫雷逆向以及辅助制作
  2. 大华出入口管理系统H710服务器配置,DH-DSS-H710S2 大华出入口综合管理系统 人员车辆管理车场收费...
  3. redies集群方案
  4. NMS(非极大值抑制)
  5. HarmonyOS笔记
  6. 【白板动画制作软件】万彩手影大师教程 | 分享在线视频
  7. 相机成像原理RAW,RGB,YUV
  8. 运筹系列31:内点法python代码
  9. 家庭组网 登录光猫超级账户(吉比特GM228-S)改桥接并使用路由器拨号上网 关闭QoS
  10. OSS实现多文件多线程的断点下载(java)