c語言 表示式的計算

2021-08-09 20:09:50 字數 2086 閱讀 7590

#include "stack.h" //提供棧及其基本操作函式

#include "mymath.h" //提供階乘函式

#include #include #define buffsize 128

#define charsize 10

#define pi 3.141593

#define e 2.718282

#define push_ope_con (stack_top(&operator) == '(' && buff[i] != ')') || (stack_top(&operator) == '[' && buff[i] != ']') || (dif = judge_ope(buff[i]) - judge_ope(stack_top(&operator))) > 1

//運算子壓入棧條件(壓入的符號優先順序大於上乙個符號的優先順序)

#define supple_num if((last != num) && (buff[i] == '+' || buff[i] == '-')) //填充數字0

#define ope_work_con stack_top(&operator) != '(' && stack_top(&operator) != '[' //運算子執行運算條件

#define pop_ope_con1 buff[i] == ')' && stack_top(&operator) == '(' //運算子彈出條件1()

#define pop_ope_con2 buff[i] == ']' && stack_top(&operator) == '[' //運算子彈出條件2

#define clear_dot if(dot == dot) //制空小數點標記符

#define fun_work_con judge_ope(stack_top(&operator)) == fun //函式執行條件

typedef enum status; //各類符合標識及其優先順序

static char buff[buffsize];

static char chars[charsize];

void exit() //-e 退出

status help() //-h 幫助資訊

else

return err;

}void input() //輸入表示式

status judge_type(char c) //判斷字元型別

status judge_ope(char c) //判斷運算子

float ope_work(float x, float y, status jud) //運算子執行

}void dispose_cha(stack *data, stack *ope) //判斷函式和常數

float fun_work(char c, float x) //函式執行

float calculate(float prev) //表示式計算

if(this != cha && last == cha)

else

memset(chars, 0, charsize);

j = 0;

} if(this == num)

else

}else if(dot == dot)

else

}else

push_stack(&data, n);

i++;

} if(this == ope)

else if(ope_work_con)

else

push_stack(&data, n);

}else if(pop_ope_con1)

else if(pop_ope_con2)

}else

else break;

}} if(this == dot)

if(this == err)

last = this; }

printf("\t%f\n", stack_top(&data));

return pop_stack(&data);

}int main()

}}

C語言表示式

逗號表示式逗號表示式 就是用逗號隔開的多個表示式,從左向右依次執行 exp1,exp2,wxp3,wxpn注意 整個表示式的結果是最後乙個表示式的結果。void test 下表引用 函式呼叫和結構成員 1.下表引用符操作符 運算元 乙個陣列名 以後索引值 int arr 10 arr 9 10 有兩...

C語言 表示式計算次序

c語言裡,優先順序和結合性規則告訴我們哪些符號組成乙個意群,同時這些意群內部如何進行計算的次序始終未定義。在表示式 x f g h g 和 h 組成乙個意群進行乘法運算,單兩者的呼叫可能以任何順序次序出現。同理f 呼叫,可能在乘法之前,也可能在乘法之後,也可能在g 和 h 呼叫之間。唯一可以確定的是...

Go語言 表示式

go語言僅有25個保留的關鍵字,下面我們就列舉下這25個關鍵字 break default func inte ce select case defer gomap struct chan else goto package switch const fallthrough ifrange type...