1樓:匿名使用者
1全部240:ret=n1*n3;break; // "*" 乘法 case 241:ret=n1/n3;break; // "/" 除法 case 242:
ret=n1%n3;break; // "%" 求餘數 case 224:ret=n1+n3;break; // "+" 加法 case 225:ret=n1-n3;break; // "-" 減法 case 208:
ret=n1< case 209:ret=n1>>n3;break; // ">>" 右移 case 192:ret=n1 case 193:
ret=n1<=n3;break; // "<=" 小於等於 case 194:ret=n1>n3;break; // ">" 大於 case 195:ret=n1>=n3;break; // ">=" 大於等於 case 176:
ret=n1==n3;break; // "==" 等於 case 177:ret=n1!=n3;break; // "!
=" 不等於與 case 144:ret=n1^n3;break; // "^" 異或 case 128:
ret=n1|n3;break; // "|" 或邏輯與 case 96:ret=n1||n3;break; // "||" 邏輯或 case 90:
ret=n1< case 86:ret=n1>>n3;break; // ">>=" case 85:ret=n1%n3;break; // "%=" case 84:
ret=n1/n3;break; // "/=" case 83:ret=n1*n3;break; // "*=" case 82:ret=n1-n3;break; // "-=" case 81:
ret=n1+n3;break; // "+=" case 80:ret=n3;break; // "=" 賦值 case -1:ret=n3;break; // 用來表示前括號 case 0:
ret=n1;break; // 空運算 } return(ret);}
2樓:雨雪霏霏
一般實現堆疊可以用連結串列或陣列,我們犯不上用連結串列這麼複雜的資料結構,用比較簡單的陣列就可以了。
對於使用c++的朋友可以用類的形式來實現class stack //整數堆疊;stack::stack(int no)stack::~stack()int stack::
push(int n) //壓棧int stack::pop(int *n) //出棧 如果用c也是一樣,使用initstack來宣告一個堆疊,但要記著在用完之後呼叫freestack釋放記憶體typdef struct stack;int initstack(struct stack *stk,int no)void freestack(struct stack *stk)}int pushstack(struct stack *stk,int n) //壓棧int popstack(struct stack *stk,int *n) //出棧 可以看出這種堆疊類在宣告物件時要給出堆疊的大小,對於我們的表示式求值來說,100個單元足夠了。但有人不禁會想到,上面這些都是整數堆疊,對於運符怎麼儲存呢?
其實是一樣的,我們可以給運算子編上用整數序號來代表,這樣就可以利用整數堆疊來儲存了。給運算子編號的另一個好處是可以利用運它的高位來代表運算子的優先順序!如下面一個函式將字串運算子轉化成含優先順序的序號,只要比較這些序號高位值的大小就可以得出誰得優先順序高了。
(下面這個函式只對二元運算子編號,沒有處理一元和多元,因為它們都可以用二元運算表示。)int convert_mark(char *str) 在rpg得指令碼描述語言中,我們基本用不上小數,因此我們在實際的二元運算中得到的將是三個整數,其中兩個是參與運算的數,另一個是運算子的序號,我們還得對此編出進行運算的函式。如:
//運算求值 n1是第一個參加運算得數,n2是運算子號得序號//n3是第二個參加運算的值int quest(int n1,int n2,int n3) return(ret);}
c語言問題求助,C語言問題求助!!!!
include void sort int p1,int p2,int p3 else if p1 p3 else else if p2 p3 if p1 看下函式形參和實參的概念。include main void sort int p1,int p2,int p3 少括號 else 少括號 el...
有關C 中指標問題,高手請進急
include using namespace std void change int int int main void change m,n 小到大 int main if pb pc if pa pb printf d d d a,b,c system pause return 0 大到小 i...
C語言問題,求助,C語言問題,求助大神
這題是迷惑人用的.因為迴圈內部沒有break,所以for會一直執行下去,直到a 11,這時a大於10,迴圈結束。最終a的值為11 for a 0 a 10 a 直到a 11時,迴圈結束。迴圈體對a的值沒有影響,包括continue對迴圈沒有影響。所以,最後列印a的值是11,選項b。c語言問題,求助大...