前後除錯了好幾天,型別轉換問題頗為麻煩,無賴使用兩種不同型別的棧解決,但程式目前還有兩個問題:
1.目前不能進行float型別的計算;
2.不能進行多位數的運算。
實際上就是目前只能進行個位數的帶括號的加減乘除運算,目前只能寫到這一步,期待後續改進。
#include#include#include#define capacity 50
typedef struct stack
*pstack,stack;
pstack initstack1()
int stackempty1(pstack st)
int stackfull1(pstack st)
int pushstack1(pstack st, char a)
else
}char popstack1(pstack st)
else
}char gettop1(pstack st)
typedef struct
*datastack;
datastack initstack2()
int stackempty2(datastack st)
int stackfull2(datastack st)
int pushstack2(datastack st, int data)
else
}int popstack2(datastack st)
else
}int gettop2(datastack st)
int priority(char op)
}int myatoi(char a)
int main(void)
popstack1(st);
break;
}case '+':
case '-':
case '*':
case '/':
else
}pushstack1(st, ch);
break;
}default:output[i++] = ch,printf("%c",ch);}}
while(!stackempty1(st))
printf("%c", temp);
printf("\n");
}output[i] = '\0';
free(st);
for(j=0;j
C語言棧實現逆波蘭計算器
逆波蘭計算器 輸入所要計算的表示式的逆波蘭式,並進行計算。如 1 2 4 5 其逆波蘭式 1 2 4 5 基礎的東西,還是要多敲 如下 中,輸入的格式如 1 2 4 5 include include include define stack init size 20 define stack in...
完整的逆波蘭計算器實現
逆波蘭bai表示式 rpn reverse polish notation 逆波蘭du表示式,它的zhi語法規定,表示式必須以逆dao波蘭表示式的方式給出。逆波蘭表示式又叫做字尾表示式。這個知識點在資料結構和編譯原理這兩門課程中都有介紹,下面是一些例子 利用棧實現逆波蘭計算器,主要的是我們人們計算的...
c語言逆波蘭表示式計算器的實現
首先要了解什麼是字尾式,字尾式是便於機械理解的一種計算表示式,一般我們需要將中綴式轉化為字尾式,中綴式就是我們正常用的算式,例如1 2 1 10 8 2這種。那麼它的字尾式為,1 2 1 10 8 2 轉化方式就是先將數字寫出然後根據符號優先順序順序寫符號,例如先計算括號內部的,先乘除再加減等等。具...