#include /*包含標頭檔案*/
#include
#define max_size 1024 /*陣列長度*/
int insert_operand(int *operand , int * top_num ,int num) /*資料壓入資料棧*/
int insert_oper (char * oper , int *top_oper , char ch) /*操作符壓入符號棧*/
int compare(char *oper , int *top_oper , char ch) /*比較操作服優先順序*/
else if(*top_oper == -1 || ch == '('|| (oper[*top_oper] == '(' && ch != ')')) /*判斷操作符棧是否為空;棧頂操作 符是否為'('*/
else if (oper[*top_oper] =='(' && ch == ')' ) /*判斷括號內的表示式是否計算完畢*/
else
} int deal_date(int *operand ,char *oper ,int *top_num, int *top_oper) /*進行資料運算*/
else if(oper[*top_oper] == '-') /*減法操作*/
else if(oper[*top_oper] == '*') /*乘法操作*/
else if(oper[*top_oper] == '/') /*除法操作*/
(*top_num) --; /*將資料棧頂下移一位*/
operand[*top_num] = value; /*將得到的值壓入資料棧*/
(*top_oper) --; /*將操作符棧頂下移一位*/
} int main()
; /*資料棧,初始化*/
int top_num = -1;
char oper[max_size] = ; /*操作符棧,初始化*/
int top_oper = -1;
char *str = (char *) malloc (sizeof(char) * 100); /*獲取表示式(不帶=)*/
scanf("%s",str);
char* temp;
char dest[max_size];
int num = 0;
int i = 0;
while(*str != '\0')
/*遇到符號退出*/
if(*str != '(' && *(temp - 1) != '\0') /*判斷符號是否為'('*/
while(1)
else if(i == 1) /*判斷括號內的表示式是否結束*/
else if(i == -1) /*進行資料處理*/
} str ++; /*指向表示式下乙個字元*/
} printf("num = %d\n",operand[0]); /*輸出結果*/
return 0; /*正常退出*/
}
加減乘除 計算器
二 程式效果說明 程式的很多bug已解決,但還是有一些bug沒有發現,或沒有解決 已發現的bug 1 如果計算過程出現科學計數法 乙個特別小的數除以乙個特別大的數時 就會使程式出錯,進入無限迴圈 2 如果不指定計算資料小數點後的有效位數,程式也會進入死迴圈 下圖是程式計算結果與python計算結果的...
用C語言設計計算器 實現加減乘除
方法一 通過普通方法 include includeint add int x,int y int sub int x,int y int nul int x,int y int drv int x,int y int main break case 2 break case 3 break cas...
shell指令碼實現加減乘除計算器
使用if語句 bin bash 這是乙個計算器 read t 30 p please input the first number num1 read t 30 p please input the second number num2 read t 30 p please input the se...