逆波蘭計算器1 0 (c語言 棧實現)支援小數計算

2021-10-02 16:09:25 字數 1037 閱讀 4629

逆波蘭表示式是一種把運算子前置的算術表示式,例如普通的表示式2 + 3的逆波蘭表示法為2 3 +。逆波蘭表示式的優點是運算子之間不必有優先順序關係,也不必用括號改變運算次序,例如(2 + 3) * 4的逆波蘭表示法為*2 3 + 4 *。其中運算子包括+ - * /四個。

並且由於棧具有後進先出的特性,所以用來實現逆波蘭計算器就會十分方便.

#include

#include

#include

# define stack_init_size 20

# define stackincrement 10

# define maxbuffer 10

typedef

double elemtype;

typedef

struct

sqstack;

void

initstack

(sqstack *s)

s->top=s->base;

s->stacksize=stack_init_size;

}void

push

(sqstack *s,elemtype e)}*

(s->top)

=e; s->top++;}

void

pop(sqstack *s,elemtype *e)

*e=*

--(s->top);}

intstacklen

(sqstack s)

intmain()

scanf

("%c"

,&c);if

(c==

' ')

}switch

(c)else

}scanf

("%c"

,&c);}

pop(

&s,&d)

;printf

("\n最終的計算結果為:%f\n"

,d);

return0;

}

C語言棧實現逆波蘭計算器

逆波蘭計算器 輸入所要計算的表示式的逆波蘭式,並進行計算。如 1 2 4 5 其逆波蘭式 1 2 4 5 基礎的東西,還是要多敲 如下 中,輸入的格式如 1 2 4 5 include include include define stack init size 20 define stack in...

單棧實現逆波蘭計算器

標頭檔案 define crt secure no warnings include include include include define error 0 define ok 1 define yes 1 define no 0 typedef int status typedef stru...

棧之逆波蘭計算器

逆波蘭表示式又叫做字尾。在通常的表示式中,二元運算子總是置於與之相關的兩個運算物件之間,這種表示法也稱為中綴表示。波蘭邏輯學家j.lukasiewicz於1929年提出了另一種表示表示式的方法,按此方法,每一運算子都置於其運算物件之後,故稱為字尾表示。逆波蘭表示式,它的語法規定,表示式必須以逆波蘭表...