題目大意:給你個表示式求值。
有4點:
1。有可能是數字(這也是乙個表示式)。
2。min(x,y) ,讓你求最小值
3。max(x,y) ,讓你求最大值
4。add(x,y) ,讓你將兩數相加
注意:表示式中沒有空格,也沒有正負號。
思路:判斷表示式中的逗號前後,如果是表示式就呼叫函式重複操作即可,如果是數字計算出來。
**:
#include
#include
#include
using namespace std;
char
str[3009];
int diao(int s,int e)
}else
//如果不是
}if(str[k-1]==')')//如果逗號前是表示式,呼叫函式重複操作即可。否則就是數字,在上面計算過了
sum1=diao(s+4,k-1);
if(str[e-1]==')')//如果逗號後是表示式,呼叫函式重複操作即可。
sum2=diao(k+1,e-1);
else
//否則就是數字,計算sum2
}if(str[s]=='a')//如果是add,就相加
return sum1+sum2;
else
if(str[s+1]=='i')//求最小值
return min(sum1,sum2);
else
//求最大值
return max(sum1,sum2);
}int main()
return
0;}
表示式求值
程式的說明見清華大學出版社 資料結構 c語言版 include include define stack init size 40 define stackincrement 20 define ok 1 define false 0 typedef structs stack typedef st...
表示式求值
既然是表示式求值,自然需要在記憶體中儲存計算結果以及中間值。在 用c語言寫直譯器 一 中提過 變數要求是若型別,而 c 語言中的 view plaincopy to clipboardprint?in basic io.h define memery size 26 typedef enum var...
表示式求值
寫了乙個下午,各種糾結,各種問,終於搞明白了。但是自己還是想出來的一點東西的。很爽歪歪的,哈哈。先貼第一次的 include include include include include includeusing namespace std char data 7 7 int sign char ...