C語言實現的簡單的逆波蘭計算器

2021-06-28 06:03:28 字數 1191 閱讀 1804

前後除錯了好幾天,型別轉換問題頗為麻煩,無賴使用兩種不同型別的棧解決,但程式目前還有兩個問題:

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 轉化方式就是先將數字寫出然後根據符號優先順序順序寫符號,例如先計算括號內部的,先乘除再加減等等。具...