C語言實現計算器(包含加減乘除和括號)

2021-07-26 06:56:08 字數 1909 閱讀 1409

#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...