• 写一个计算器(C语言版本),可以求出:整数的加,减,乘,除四则运算


    写一个计算器(C语言版本),可以求出:整数的加,减,乘,除四则运算!

    对于求出整数的加减乘除问题,我想大家现如今看见笔者此篇博文时候!大多都已经能够正确写出准确的代码来求整数的加减乘除了!其实对于计算器,并不仅仅只限于加减乘除,还有其他的数值运算类型,由于笔者能力所限制,暂时不做过多的讲述!

    下面请看笔者对于:写一个计算器(C语言版本),可以求出:整数的加,减,乘,除四则运算!

    代码的书写过程详解!

    1.对于一个小游戏,我们需要一个菜单,来指引我们进行简单的输入!

    因此,打印菜单就是第一要务!其实对于菜单,并没有多么的复杂化,只要很简单的小小几步,就能书写出来,下面是笔者所写的菜单代码!

    1. #include
    2. void menu()
    3. {
    4. printf("***************************\n");
    5. printf("***** 1.add 2. sub ****\n");
    6. printf("***** 3.mul 4. div ****\n");
    7. printf("***** 0.exi ****\n");
    8. printf("***************************\n");
    9. }
    10. int main()
    11. {
    12. menu();
    13. return 0;
    14. }

    上述代码段,定义了一个menu函数来打印菜单

    下面是笔者的运转结果!符合我们的预期,因此简简单单的菜单就已经打印出来了!

    2.在main 函数里面,书写出简单的代码需求:

    1. int main()
    2. {
    3. menu();
    4. int input = 0;
    5. //定义input为菜单上面的选择数字
    6. int x = 0;
    7. int y = 0;
    8. //输入想要计算的数字
    9. int ret = 0;
    10. printf("请选择 : 》");
    11. scanf_s("%d", &input);
    12. printf("请输入两个操作数:》");
    13. scanf_s("%d %d", &x, &y);
    14. return 0;
    15. }

    上述代码段,是主要的方向,下面,对于输出入input进行简单的选择!

    1. do
    2. {
    3. menu();
    4. printf("请选择:>");
    5. scanf("%d", &input);
    6. switch (input)
    7. {
    8. case 1:
    9. ret = Add(x, y);
    10. printf("%d\n", ret);
    11. break;
    12. case 2:
    13. ret = Sub(x, y);
    14. printf("%d\n", ret);
    15. break;
    16. case 3:
    17. ret = Mul(x, y);
    18. printf("%d\n", ret);
    19. break;
    20. case 4:
    21. ret = Div(x, y);
    22. printf("%d\n", ret);
    23. break;
    24. case 0:
    25. printf("退出计算器\n");
    26. break;
    27. default:
    28. printf("选择错误\n");
    29. break;
    30. }
    31. } while (input);

    上述代码段中,用了do  while() 循环,还有switch....case; break;选择语句穿插在其中;所以使得结构更加完整!

    3.下面笔者来对加减乘除四个运算,来定义函数!

    1. int Add(int x, int y)
    2. {
    3. return x + y;
    4. }
    5. int Sub(int x, int y)
    6. {
    7. return x - y;
    8. }
    9. int Mul(int x, int y)
    10. {
    11. return x * y;
    12. }
    13. int Div(int x, int y)
    14. {
    15. return x / y;
    16. }

    4.上述代码段中,笔者用函数的写法,来定义了分别对应的加减乘除函数!

    上述代码合起来就是:

    1. int Add(int x, int y)
    2. {
    3. return x + y;
    4. }
    5. int Sub(int x, int y)
    6. {
    7. return x - y;
    8. }
    9. int Mul(int x, int y)
    10. {
    11. return x * y;
    12. }
    13. int Div(int x, int y)
    14. {
    15. return x / y;
    16. }
    17. #include
    18. void menu()
    19. {
    20. printf("***************************\n");
    21. printf("***** 1.add 2. sub ****\n");
    22. printf("***** 3.mul 4. div ****\n");
    23. printf("***** 0.exit ****\n");
    24. printf("***************************\n");
    25. }
    26. int main()
    27. {
    28. //menu();
    29. int input = 0;
    30. //定义input为菜单上面的选择数字
    31. int x = 0;
    32. int y = 0;
    33. //输入想要计算的数字
    34. int ret = 0;
    35. do
    36. {
    37. menu();
    38. printf("请选择 : 》");
    39. scanf_s("%d", &input);
    40. printf("请输入两个操作数:》");
    41. scanf_s("%d %d", &x, &y);
    42. switch (input)
    43. {
    44. case 1:
    45. ret = Add(x, y);
    46. printf("%d\n", ret);
    47. break;
    48. case 2:
    49. ret = Sub(x, y);
    50. printf("%d\n", ret);
    51. break;
    52. case 3:
    53. ret = Mul(x, y);
    54. printf("%d\n", ret);
    55. break;
    56. case 4:
    57. ret = Div(x, y);
    58. printf("%d\n", ret);
    59. break;
    60. case 0:
    61. printf("退出计算器\n");
    62. break;
    63. default:
    64. printf("选择错误\n");
    65. break;
    66. }
    67. } while (input);
    68. return 0;
    69. }

    因此上述代码合起来便能运算出来结果!

     

    上述代码为笔者所运行出来的结果:在此笔者也能清晰的看出来,输入8已经超过了菜单的……

    但是又出现了“请输入两个操作数”,所以出现了,错误!

    因此,就是,需要进行点更改:

    5.更改后的代码为:

    1. do
    2. {
    3. menu();
    4. printf("请选择:>");
    5. scanf_s("%d", &input);
    6. switch (input)
    7. {
    8. case 1:
    9. printf("请输入2个操作数:>");
    10. scanf_s("%d %d", &x, &y);
    11. ret = Add(x, y);
    12. printf("%d\n", ret);
    13. break;
    14. case 2:
    15. printf("请输入2个操作数:>");
    16. scanf_s("%d %d", &x, &y);
    17. ret = Sub(x, y);
    18. printf("%d\n", ret);
    19. break;
    20. case 3:
    21. printf("请输入2个操作数:>");
    22. scanf_s("%d %d", &x, &y);
    23. ret = Mul(x, y);
    24. printf("%d\n", ret);
    25. break;
    26. case 4:
    27. printf("请输入2个操作数:>");
    28. scanf_s("%d %d", &x, &y);
    29. ret = Div(x, y);
    30. printf("%d\n", ret);
    31. break;
    32. case 0:
    33. printf("退出计算器\n");
    34. break;
    35. default:
    36. printf("选择错误\n");
    37. break;
    38. }
    39. } while (input);

    上述的代码运算结果为:

     由上述的代码跟运转结果可以看出:每次都输入了两句……

    1. printf("请输入2个操作数:>");
    2. scanf_s("%d %d", &x, &y);

    显得过于复杂!

    6.因此,总的代码为:(运行结果没有错误)!

    1. int Add(int x, int y)
    2. {
    3. return x + y;
    4. }
    5. int Sub(int x, int y)
    6. {
    7. return x - y;
    8. }
    9. int Mul(int x, int y)
    10. {
    11. return x * y;
    12. }
    13. int Div(int x, int y)
    14. {
    15. return x / y;
    16. }
    17. #include
    18. void menu()
    19. {
    20. printf("***************************\n");
    21. printf("***** 1.add 2. sub ****\n");
    22. printf("***** 3.mul 4. div ****\n");
    23. printf("***** 0.exit ****\n");
    24. printf("***************************\n");
    25. }
    26. int main()
    27. {
    28. //menu();
    29. int input = 0;
    30. //定义input为菜单上面的选择数字
    31. int x = 0;
    32. int y = 0;
    33. //输入想要计算的数字
    34. int ret = 0;
    35. /*printf("请选择 : 》");
    36. scanf_s("%d", &input);
    37. printf("请输入两个操作数:》");
    38. scanf_s("%d %d", &x, &y);*/
    39. do
    40. {
    41. menu();
    42. printf("请选择:>");
    43. scanf_s("%d", &input);
    44. switch (input)
    45. {
    46. case 1:
    47. printf("请输入2个操作数:>");
    48. scanf_s("%d %d", &x, &y);
    49. ret = Add(x, y);
    50. printf("%d\n", ret);
    51. break;
    52. case 2:
    53. printf("请输入2个操作数:>");
    54. scanf_s("%d %d", &x, &y);
    55. ret = Sub(x, y);
    56. printf("%d\n", ret);
    57. break;
    58. case 3:
    59. printf("请输入2个操作数:>");
    60. scanf_s("%d %d", &x, &y);
    61. ret = Mul(x, y);
    62. printf("%d\n", ret);
    63. break;
    64. case 4:
    65. printf("请输入2个操作数:>");
    66. scanf_s("%d %d", &x, &y);
    67. ret = Div(x, y);
    68. printf("%d\n", ret);
    69. break;
    70. case 0:
    71. printf("退出计算器\n");
    72. break;
    73. default:
    74. printf("选择错误\n");
    75. break;
    76. }
    77. } while (input);
    78. return 0;
    79. }

    但是运转结果却是没有出现错误!只不过就是代码感觉不是很合适,因此需要进行简单的简化!

    因为,笔者目前已经初步接触函数指针数组,所以可以进行简单的用函数指针来书写!

    有兴趣的读者,请参考一下,笔者的下篇博文,下篇博文,将会进行详细的讲解!

  • 相关阅读:
    DDD实践:实现基于快照机制的变更追踪
    Git(一)Windows下安装及使用Git Bash
    九、线程池 Executor(半成品,后续继续更新...)
    文本纠错易语言代码
    按关键字搜索商品详情销量的步骤教学
    借助 Pyroscope 对 Amazon EKS 容器服务进行 Continuous Profiling 诊断应用性能
    linux三种软件安装方式
    这Bug只能通过压测发现
    Gitee配置静态页面
    Appium和Android常用9种自动化测试框架对比有哪些优势?
  • 原文地址:https://blog.csdn.net/weixin_64308540/article/details/126316739