C 實現計算器(四則混合運算)

2021-07-31 08:48:44 字數 1914 閱讀 1015

計算器是帶括號的四則運算實際上利用的是棧後進先出的原則

轉換思想:

}//入棧push

int pop1(stack1 *s, float ch)

//出棧

typedef struct

stack2;

void initstack2(stack2 *s)

int push2(stack2 *s, char ch)

}//入棧push

int pop2(stack2 *s, char ch)

//出棧

int comop(char ch) //判斷是否是運算子

}//判斷ch是否為運算子

char prior[7][7] =

, /*'-'*/,

/*'*'*/,

/*'/'*/,

/*'('*/,

/*')'*/,

/*'#'*/,

};int opid(char op1)

}char precede(char op1, char op2) //優先順序比較

float operation(float a, char op, float b)

}void createexpression(char *exp)

scanf("%s", exp);

}void transmitexpression(char *exp, char postexp) //中綴表示式轉換字尾表示式

postexp[i++] = '#';

}else

switch (precede(fz.data[fz.top], *exp))

}while (fz.data[fz.top] != '#')

postexp[i] = '\0';

}float evaluateexpression(char *postexp) //字尾表示式的計算

push1(&sz, d);

sz.data[sz.top] = d;

break;

}postexp++;

}return(sz.data[sz.top]);

}int error(char *exp) //錯誤表示式判斷

return0;}

void menu()

void clear()

void quit()

void main()

; menu();

while (1)

else

if (error(exp))

case

'b':

clear();

break;

case

'c':

quit();

break;}}

system("pause");

}

c 四則混合運算

最近因專案需求,做了乙個簡易的四則混合運算解析模組。例如計算表示式 34 300 4 2 300 4 2 注 運算子僅支援 五種型別 public inte ce imixedcalculate t exec string expression 介面實現類 public class mixedcal...

python 計算器 四則運算

學習來自 感謝!思路 考慮的四則運算符號 獲取表示式字串 表示式切分 請注意區分 減號 與負號 先出初切 formula list i for i in re.split d d formula if i 然後再判定 if re.search final formula 1 其他正常切分就行 ite...

四則運算計算器

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