[問題] 有關postfix的運算...
遇到的問題:
是寫將一個輸入的算式
每一個輸入的
都當成是字串
然後轉換成postfix
最後印出轉換後的答案~並計算出答案(數字)
這是我的部分程式碼
不過下面紅色那一段
不知道要怎麼寫
才能寫出會去計算原本讀入的算式
並印出來
我的想法是把輸入的那些算式(字串)
先存到陣列a中
然後再讓b=a這個陣列
因為b是設定為一個整數
所以我認為應該是會計算a這個算式
然後最後印出答案b
可是好像跑出來的東西怪怪的
所以應該是我的想法有問題
但我又不知道要如何在去改了
可以請高手幫忙解答一下嘛??
例如輸入了:2*3^2+8/4
希望得到的正確結果:
20 <<<(答案)
232^*84/+ <<<(轉換後)
程式跑出來的錯誤結果:
1580411442 <<<這個有問題而已
232^*84/+
開發平台: Dev-C++
有問題的code: (請善用置底文標色功能)
以下是部分CODE(有問題為紅色的)
int postfix(char*); //轉成postfix
int priority(char); //決定符號優先順序
int main(int argc, char *argv[])
{
char input[80];
int a[80],b;
printf("輸入運算式:");
scanf("%s", input);
scanf(input,"%100s",&a[80]); //先把原本輸入的丟到a這個陣列中
b = a[80] ; //然後設定b去計算a
printf("%d\n",b); //把答案印出來
postfix(input);
system("PAUSE");
return 0;
}
補充說明:
因為最後出來的答案
很顯然不是我所想要的
請問需要怎麼修改??
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.44.104.197
推
11/23 04:00, , 1F
11/23 04:00, 1F
推
11/23 04:06, , 2F
11/23 04:06, 2F
→
11/23 05:42, , 3F
11/23 05:42, 3F
推
11/23 05:49, , 4F
11/23 05:49, 4F
→
11/23 05:49, , 5F
11/23 05:49, 5F
→
11/23 05:49, , 6F
11/23 05:49, 6F
→
11/23 05:52, , 7F
11/23 05:52, 7F
→
11/23 05:52, , 8F
11/23 05:52, 8F
→
11/23 05:53, , 9F
11/23 05:53, 9F
推
11/23 10:50, , 10F
11/23 10:50, 10F
→
11/23 12:36, , 11F
11/23 12:36, 11F
推
11/23 12:45, , 12F
11/23 12:45, 12F
→
11/23 13:55, , 13F
11/23 13:55, 13F
→
11/23 13:56, , 14F
11/23 13:56, 14F
→
11/23 13:57, , 15F
11/23 13:57, 15F
→
11/23 13:57, , 16F
11/23 13:57, 16F