簡單的四則運算計算器

2021-07-05 22:22:20 字數 2515 閱讀 9471

#include "stdio.h"

#include "stdlib.h"

#include "string.h"

/************/

#define string_length 1000

#define number_length 40

/*結構體定義*/

struct symbol

*symbol_head=null,*temp=null;struct number

*number_head=null,*temp_2=null;char result[number_length];/**********/

/*函式宣告*/

double ji_shuan(double a,char t,double b);/*兩個double資料計算*/

void string_scan(char *str);/*字串算式掃瞄*/

void operate(void);/*鍊錶操作*/

void operate(void)/*鍊錶操作*/

double ji_shuan(double a,char t,double b)/*兩個double資料計算*/

}void string_scan(char *str)/*字串算式掃瞄*/

temp_str[j]='\0';

t=(struct number *)malloc(sizeof(struct number));

t->next=number_head;

number_head=t;

number_head->n=atof(temp_str);//double atof(*char)為字串轉double函式

}if(str[i]=='('||str[i]==')'||str[i]=='+'||str[i]=='-'||str[i]=='*'||str[i]=='/'||str[i]=='=')

}else

if((str[i]=='*'||str[i]=='/')&&(symbol_head->next->c=='*'||symbol_head->next->c=='/'))

else

if(str[i]=='=')

temp=symbol_head;

symbol_head=symbol_head->next->next;

free(temp);

}else

if(str[i]==')')

temp=symbol_head;

symbol_head=symbol_head->next->next;

free(temp);}}

}/*用於除錯*/

/*while(number_head!=null||symbol_head!=null)

if(symbol_head!=null)

}*/printf("以double型輸出的結果:\n%f\n",number_head->n);

gcvt(number_head->n,number_length,result);//呼叫double轉字串函式

if(result[strlen(result)-1]=='.')//如果最後位是小數點,則去掉

printf("呼叫浮點型轉字串函式gctv的輸出結果:\n%s\n",result);

ndig=20; //設定小數點後顯示10位

string = ecvt(number_head->n, ndig, &dec, &sign);

printf("呼叫浮點型轉字串函式ectv的輸出結果:\n字串:%s 小數點在第%d位後 ",string,dec);

if(sign==0)

else

}int main(void)/*入口函式*/

for(i=0;istr)-1;i++)

else

if(str[i]=='(')

else

if(str[i]==')')

}else

if(str[i]=='=')

if((str[i]=='+'||str[i]=='-'||str[i]=='*'||str[i]=='/')&&(str[i+1]=='+'||str[i+1]=='-'||str[i+1]=='*'||str[i+1]=='/'||str[i+1]==')'))

else

if(str[i]=='('&&str[i+1]==')')

else

if(str[i]==')'&&(str[i+1]!='+'&&str[i+1]!='-'&&str[i+1]!='*'&&str[i+1]!='/'))

}if(bracket_flag!=0)

if(str[strlen(str)-1]!='=')//自動新增"="

string_scan(str);

printf("\n計算完成!請選擇:\n1.繼續計算.\n2.退出.\n\n");

loop_2: scanf("%d",&select);

switch(select)

}}

四則運算計算器

今天做個帶視窗的c 四則運算計算器 輸入中綴表示式 自然表示式 可以用list來放 先把它變成字尾表示式 逆波蘭表示式 用乙個棧放運算子,另乙個棧放字尾表示式 運算子優先順序 1 2 3 4 從左到右遍歷中綴表示式 計算字尾表示式 從左到右掃瞄字尾表示式,如果是數字,放入數字棧。如果是符號,從數字棧...

四則運算計算器(物件導向程式設計思維)

寫計算器感知 1,定義介面 public inte ce icalculate 2,定義類 public class mul icalculate 乘法類實現介面 public class add icalculate 加法類實現介面 等等 3,當我們要計算時我們可以統一建立icalculate類物...

字尾式四則運算計算器 堆疊實現

本計算器利用堆疊來實現。1 定義字尾式計算器的堆疊結構 因為需要儲存的單元不多,這裡使用順序棧,即用一維陣列來模擬堆疊 define max 100 int stack max int top 0 因此程式中定義了長度為max的一維陣列,這裡max用巨集定義為常數100,我們可以修改巨集定義而重新定...