- 締切済み
C言語で逆ポーランド演算式をスタックを用いて表現するには
C言語でスタックを使って逆ポーランド表記の演算を行うプログラムを作っています。 正の整数の場合はできたのですが、小数や負の数にも対応できるように変えるにはどうしたらよいのでしょうか? 例えば、スペースで区切られた 1.2 4.2 -3.2 + * と言う様な値を入力してちゃんと計算できるようにしたいのですが・・・。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- a-saitoh
- ベストアンサー率30% (524/1722)
回答No.3
符号の - と引き算演算子の -に同じ文字(-)を使っているとうまく作れません。 -の直後に数字が来れば負の数、空白が来れば引き算演算子、というような制約条件でいいのなら、楽に作れます。 まず、何故自力で出来ないのかを説明しないと、うまく助言できないと思いますよ。プログラム構造的には、正の整数でできればもう完成したも同然なので。
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
回答No.2
今どんな感じでやっているのか ソースを補足してください。
- sakusaker7
- ベストアンサー率62% (800/1280)
回答No.1
基本的な部分はできているわけですよね? とりあえず数値の読み取り部分を strtod などでやってやれば 小数でも符号付のものでも問題なく解析できると思いますが (今現在どうやってるのかわかりませんけど)。 後はスタックへの積み幅が変わりますが、どの辺で詰まっているのでしょう? あー、小数と整数が混在するからそこで引っかかっている?