经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » C 语言 » 查看文章
C语言实现简单的计算器(加、减、乘、除)
来源:cnblogs  作者:凯戈铁马  时间:2019/5/8 9:30:07  对本文有异议

  利用运算符做为swich  case 语句条件,实现简单程序的编写;并且对输入的运算做判断,除数为零也需做判断;

  1. 1 #include<stdio.h>
  2. 2
  3. 3 int add(int a, int b);
  4. 4 int sub(int a, int b);
  5. 5 int mul(int a, int b);
  6. 6 int div(int a, int b);
  7. 7
  8. 8
  9. 9 int main(int argc, const char *argv[])
  10. 10 {
  11. 11 /*
  12. 12 * 定义接收变量,运算字符;
  13. 13 */
  14. 14 int a,b,d;
  15. 15 char ch;
  16. 16
  17. 17 /*
  18. 18 * 赋初值
  19. 19 */
  20. 20 a = 0;
  21. 21 b = 0;
  22. 22 ch = '0';
  23. 23
  24. 24
  25. 25 /*
  26. 26 * 控制台输入运算变量,运算符;
  27. 27 */
  28. 28 printf("请输入需要计算的数及运算符;格式如:'num1 +-x/ num2' \n");
  29. 29 scanf("%d%c%d",&a,&ch,&b);
  30. 30
  31. 31 /*
  32. 32 * 输入数据判断
  33. 33 */
  34. 34 while((ch != '+')&&(ch != '-')&&(ch != '*')&&(ch != '/'))
  35. 35 {
  36. 36 //fflush(stdin);此种清空缓冲区无效
  37. 37 setbuf(stdin,NULL);
  38. 38 printf("输入运算符有误,请重新输入:\n");
  39. 39 scanf("%c",&ch);
  40. 40 }
  41. 41
  42. 42 /*
  43. 43 * 除数为0做判断
  44. 44 */
  45. 45 if((ch == '/')&&(b==0))
  46. 46 {
  47. 47 setbuf(stdin,NULL);
  48. 48 printf("除数不能为0,请重新输入:\n");
  49. 49 scanf("%d",&b);
  50. 50 }
  51. 51
  52. 52
  53. 53 /*
  54. 54 * 识别不同运算字符,做不同的运算;
  55. 55 */
  56. 56 switch(ch)
  57. 57 {
  58. 58 case '+':
  59. 59 printf("%d+%d=%d\n",a,b,add(a,b));
  60. 60 break;
  61. 61 case '-':
  62. 62 printf("%d-%d=%d\n",a,b,sub(a,b));
  63. 63 break;
  64. 64 case '*':
  65. 65 printf("%d*%d=%d\n",a,b,mul(a,b));
  66. 66 break;
  67. 67 case '/':
  68. 68 printf("%d/%d=%d\n",a,b,div(a,b));
  69. 69 break;
  70. 70 default:
  71. 71 printf("Error\n");
  72. 72 }
  73. 73
  74. 74 return 0;
  75. 75 }
  76. 76
  77. 77 /*
  78. 78 * 定义运算函数
  79. 79 */
  80. 80 int add(int a, int b)
  81. 81 {
  82. 82 return a+b;
  83. 83 }
  84. 84
  85. 85 int sub(int a, int b)
  86. 86 {
  87. 87 return a-b;
  88. 88 }
  89. 89
  90. 90 int mul(int a, int b)
  91. 91 {
  92. 92 return a*b;
  93. 93 }
  94. 94
  95. 95 int div(int a, int b)
  96. 96 {
  97. 97 return a/b;
  98. 98 }

 

原文链接:http://www.cnblogs.com/kai-liu/p/10827763.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号