實現乙個簡單的計算器(不要求除法):如
輸入: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...