四則運算棧實現(支援10和10以上的數運算)

2021-06-06 00:53:15 字數 1934 閱讀 4496

///*日期:2012.4.21*/

/*功能:四則運算*/

#include "stdafx.h"

#include #include #include #define data 1

#define oper 0

#define over -1

typedef struct stacknode

stacknode,*linkstackptr;

typedef struct linkstack

linkstack;

typedef struct dataoroper

dataoroper;

int compute(linkstack *s,const dataoroper* backstring);//通過字尾表示式計算結果

int stackempty(linkstack s);//檢測堆疊是否空

int push(linkstack *s,int e);//壓棧

int pop(linkstack *s,int *e);//彈棧

int operate(char oper,int operatedata1,int operatedata2);//運算操作

void frontstring2backstring(linkstack *l,const dataoroper* s,dataoroper *d);//中綴表示式轉化為字尾表示式

char checkprior(char operator1,char operator2);//比較運算子優先順序

void string2frontstring(char *string,dataoroper *d);//字串轉換為中綴表示式

char operators[7]="+-*/()";//運算子陣列

char prioritytable[6][6]= //運算子優先順序陣列, ,

, ,, ,

};/*dataoroper frontstring=,,,,,

,,,,,

,,,};*/

//char string="19+(3-1)*13+14/2";

int main(int argc, char* argv)

int push(linkstack *s,int e)

int pop(linkstack *s,int *e)

int gettop(linkstack *s,int *e)

int stackempty(linkstack s)

int operate(char oper,int operatedata1,int operatedata2)

return temp;

}int compute(linkstack *s,const dataoroper* backstring)

backstring++;

} pop(s,&temp);

return temp;

}void frontstring2backstring(linkstack *l,const dataoroper* s,dataoroper *d)

}if(stackempty(*l))

}else if(s->dataoroper==data)

s++;

} while(stackempty(*l)==0)

d->data=-1;

d->dataoroper=over;

}char checkprior(char operator1,char operator2)

void string2frontstring(char *string,dataoroper *d)

d->data=sum;

d->dataoroper=data;

d++;

} else

}d->data=-1;

d->dataoroper=over;

}

棧 實現四則運算

題目描述 給定乙個字串描述的算術表示式,計算出結果值。輸入字串長度不超過100,合法的字元包括 0 9 字串內容的合法性及表示式語法的合法性由做題者檢查。本題目只涉及整型計算。題目描述 給定乙個字串描述的算術表示式,計算出結果值。輸入字串長度不超過100,合法的字元包括 0 9 字串內容的合法性及表...

四則運算v1 0

題目 v1.0花二十分鐘寫乙個能自動生成30道小學四則運算題目的 軟體 v2.0題目避免重複 可定製 數量 列印方式 package sizeyunsuan 30道100以內四則運算 public class random public static char getcharrandom retur...

10以內四則運算 程式

注意10以內的隨機數是如何生成的。另一種方法,rand 10,結果也為0 9之間的數 rand max是乙個符號常量,定義在cstdlib中。在visual c 中,它的值為32767.rand 每次呼叫會生成乙個0 rand max整數1 計算機四則運算,10以內 2 include 3 incl...