hdu 1237 簡單計算器 (棧的簡單應用)

2022-05-23 23:42:17 字數 1548 閱讀 1400

感覺自己很菜,乙個棧的應用,寫了好久,還是**能力弱啊~

剛開始直接用的開了兩個棧,結果在判空時出現問題,改用自己寫的棧,還是wa,一怒之下上網查了一下,原來是我理解有問題,汗~~

我們在算加減乘除的時候,總是先算乘除,再算加減,還有一點就是,再算加減的時候也要從左往右算,否則就wa了。

自己寫的**,wa了:

1 #include

2 #include

3 #include

4int jud(char a,char b)

5 15

double cal(double a,double b,char m)

16 25

int main()

26 47 q[top1++]=m;

48 }

49else

if(str[i]=='

+'||str[i]=='

-'||str[i]=='

*'||str[i]=='/')

50

55else

56

61else

62

67 }

68 }

69 }

70while(top1>=2&&top2>=1)

71

76 printf("

%.2lf\n

",q[0]);

77 }

78return

0;79 }

1 #include

2 #include

3 #include

4int jud(char a,char b)

5 15

double cal(double a,double b,char m)

16 25

int main()

26 47 q[top1++]=m;

48 }

49else

if(str[i]=='

+'||str[i]=='

-'||str[i]=='

*'||str[i]=='/')

50

55else

56

63 p[top2++]=str[i];

64 }

65 }

66 }

67while(top2>=1)

68

73 printf("

%.2lf\n

",q[0]);

74 }

75return

0;76 }

hdu 1237 簡單計算器 棧

這個題目是大部分人都是用棧來寫的,本週訓練老師也講了兩次棧的原理。自己最近也看了資料結構中與棧有關的內容,還是比較深刻理解了沒有括號情況下表示式求解。include include include using namespace std char s 250 post 250 s是輸入的中綴表示式,...

hdu 1237 簡單計算器(棧)

hdu 1237 簡單計算器 棧 如果是 就把原數壓入棧 如果是 就把相反數壓入棧 如果是 就把當前數和棧頂數計算後壓入棧 如果是 就把當前數和棧頂數計算後壓入棧 注意該題是3 2而不是3 2,有空格 include include include include includeusing name...

hdu1237 簡單計算器 棧

題目鏈結 題目給出的是中綴表示式,中綴表示式是我們習慣上用的計算表示式,人腦計算方便快速,但是計算機不然,計算機計算波蘭和逆波蘭表示式都很方便,但對中綴表示式通常需要轉化成字首或字尾表示式才方便計算。舉例 4 2 5 7 11 轉化成逆波蘭的形式是 4 2 5 7 11 對於人腦,轉化過程是對表示式...