實現乙個簡單的計算器(不要求除法)

2021-06-20 01:33:41 字數 1665 閱讀 4244

實現乙個簡單的計算器(不要求除法):如

輸入:12+3*(5+6)*8

輸出:276

感謝徐帥的**,以下為改良版。

#include #include #include #define len 100

#define max_len 100

typedef struct element

element;

typedef struct opstack//中綴變字尾用的操作符暫存棧

opstack;

typedef struct floatstack

floatstack;

element *midtopost(char *str);

void elementarrayprint(element *postorder);

float posttoresult(element *postorder);

void opstackpush(opstack **t_ptr,char op);

char opstacktop(opstack *top);

char opstackpop(opstack **t_ptr);

void floatstackpush(floatstack **t_ptr,float number);

float floatstackpop(floatstack **t_ptr);

int main(void)

else

printf("input error!\n");

free(cmd);

return 0;

}void opstackpush(opstack **t_ptr,char op)

char opstacktop(opstack *top)

char opstackpop(opstack **t_ptr)

void floatstackpush(floatstack **t_ptr,float number)

float floatstackpop(floatstack **t_ptr)

element *midtopost(char *str)

else

opstackpush(&top,*read_temp);

}else if(*read_temp=='*'||*read_temp=='/')

opstackpush(&top,*read_temp);

}else if(*read_temp=='(')

opstackpush(&top,'(');

else//只剩下右括號

opstackpop(&top);//把這個左括號也彈出去

}*read_temp++;}}

while(top!=null)//讀完後若操作符棧內還有剩餘操作符,全部加入字尾

return postorder;

}void elementarrayprint(element *postorder)

}float posttoresult(element *postorder)

++i;

} float ret=floatstackpop(&top);

printf("for test:ret=%f\n",ret);

return ret;

}

QT實現乙個簡單的計算器

最近幾天在學習qt,在了解了訊號和槽機制 布局管理 還有一些控制項的使用後,便試著寫了乙個計算器,帶自定義的快捷鍵,剪貼簿 複製和貼上 的操作,有 選單欄 選擇 裡的功能還未實現,等啥時候有時間把它補上吧。還有許多不足和需要修改的地方,希望各位大牛能幫忙指出其中的問題,謝謝。下面就貼出我的 calc...

C 實現乙個簡單的計算器

乙個用堆和棧實現的簡單計算器,可以進行非負數之間的加減乘除運算 可以是個位數也可以是多位數 這個計算器就是用棧和佇列進行乙個手算過程的模擬,也不算難 下面是 include include include include include using namespace std int main if...

Qt實現乙個簡單的計算器

執行效果 輸入num1和num2選擇 點選計算即可 ui介面設計 3個lineedit lineeditnum1,lineeditnum2,lineeditsum 2個pushbutton buttonclear,buttoncalc 1個combobox 1個label 布局 3個lineedit...