感覺自己很菜,乙個棧的應用,寫了好久,還是**能力弱啊~
剛開始直接用的開了兩個棧,結果在判空時出現問題,改用自己寫的棧,還是wa,一怒之下上網查了一下,原來是我理解有問題,汗~~
我們在算加減乘除的時候,總是先算乘除,再算加減,還有一點就是,再算加減的時候也要從左往右算,否則就wa了。
自己寫的**,wa了:
1 #include2 #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 #include2 #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 對於人腦,轉化過程是對表示式...