如何用C语言编写一个简易计算器程序?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1498个文字,预计阅读时间需要6分钟。
这两日在研究C语言编写的计算器程序,完成了不少功能。跟随作者一步步完善,理解了许多细节,对程序的印象加深,也理顺了逻辑。
这两天在看一个C语言写的计算器程序,做了不少的功夫,跟着作者一步步的进行完善,了解了许多细节性的东西,在此自己做个总结,加深自己对程序的印象,也算是梳理。
在该计算器程序,能进行加减乘除、sin、cos、exp等操作,同时能进行数值保存功能。而该计算器使用逆波兰表示法。即所有运算符都跟在操作数的后面,比如下列表达式:
(1 - 2) * (4 + 5)采用逆波兰表示法表示为:1 2 - 4 5 + *
逆波兰表达法中不需要圆括号,只要知道每个运算符需要几个操作数就不会引起歧义。
计算器程序实现很简单,具体原理如下:
while(/* 下一个运算符或操作数不是文件结束指示符 */) if(/* 是数 */) /* 将该数压入到栈中 */ else if (/* 是运算符 */) /* 弹出所需数目的操作数 */ /* 执行运算 */ /* 将结果压入到栈中 */ else if (/* 是换行符 */) /* 弹出并打印栈顶的值 */ else /* 出错 */
在程序设计中,使用模块化思想,getop函数来进行读入,该函数返回一个标识,用来标识读入的是什么类型。主循环体中根据该标识执行相应的动作。
本文共计1498个文字,预计阅读时间需要6分钟。
这两日在研究C语言编写的计算器程序,完成了不少功能。跟随作者一步步完善,理解了许多细节,对程序的印象加深,也理顺了逻辑。
这两天在看一个C语言写的计算器程序,做了不少的功夫,跟着作者一步步的进行完善,了解了许多细节性的东西,在此自己做个总结,加深自己对程序的印象,也算是梳理。
在该计算器程序,能进行加减乘除、sin、cos、exp等操作,同时能进行数值保存功能。而该计算器使用逆波兰表示法。即所有运算符都跟在操作数的后面,比如下列表达式:
(1 - 2) * (4 + 5)采用逆波兰表示法表示为:1 2 - 4 5 + *
逆波兰表达法中不需要圆括号,只要知道每个运算符需要几个操作数就不会引起歧义。
计算器程序实现很简单,具体原理如下:
while(/* 下一个运算符或操作数不是文件结束指示符 */) if(/* 是数 */) /* 将该数压入到栈中 */ else if (/* 是运算符 */) /* 弹出所需数目的操作数 */ /* 执行运算 */ /* 将结果压入到栈中 */ else if (/* 是换行符 */) /* 弹出并打印栈顶的值 */ else /* 出错 */
在程序设计中,使用模块化思想,getop函数来进行读入,该函数返回一个标识,用来标识读入的是什么类型。主循环体中根据该标识执行相应的动作。

