如何使用c语言实现四则运算,详细思路很重要啊(越详细越好~),可以木有代码(急)

如题所述

第1个回答  2011-09-10
1.判断四则运算字符串的括号是否匹配,可以用以个栈来计算,开始栈是空,从头遍历所有字符,找到'(',压栈,找到')'弹出一个元素,遍历完成以后如果栈是空表示正常,非空,或则中间出现问题都表示括号不正常。
2.分解四则运算中的所有元素,把所有分解的元素放在队列中,遍历整个字符串,有switch分支,如果是0-9的字符用一个字符串存储并和前面的字符组合起来,如果是'+''-''*''/'就把前面存储数字的字符串当成一个元素放进队列,并把当前运算法符当成一个元素也放进队列,遍历完成以后所有的数据和运算符都分开了,比如234+456,会分解成234,+,456三个元素。
3.然后分解队列,用两个栈,一个存放所有元素用A表示,一个存放运算符号用B表示(这个是临时变量),从头开始遍历整个队列,如果是数据就把数据压到A栈。如果元素是运算符就分开处理,如果是'(''+''-''*''/'')'处理方法都不一样,详细说明太复杂,整体的思想就是把数据和运算符的顺序排列好(上面的元素排列以后变成234,456,+;可以参考后序排列)。
4.计算:依次弹出A中的元素,如果是数据把数据压在栈C中,如果是运算符,从C中弹出该运算符需要的数据,然后把计算结果再次压进栈C,当A遍历完以后,C顶元素就是计算结果。
整个大题思路:1.检查,2.分解,3.中序排列,4.后序排列,5.计算
相似回答
大家正在搜