#include<iostream>usingnamespace std;#define MaxSize 20boolisMatched(char left,char right);boolbracketMatching(constchar expression[]);intmain(){char expression[MaxSize];bracketMatching(expression);return0;}boolisMatched(char left,char right){if(left =='('&& right ==')')returntrue;elseif(left =='['&& right ==']')returntrue;elsereturn left =='{'&& right =='}';}boolbracketMatching(constchar expression[]){char cache[MaxSize];int cache_top =-1;for(int i =0; expression[i]!='\0';++i){if(expression[i]=='('||
expression[i]=='['||
expression[i]=='{'){
cache[++cache_top]= expression[i];}if(expression[i]==')'||
expression[i]==']'||
expression[i]=='}'){if(cache_top ==-1)return0;char left = cache[--cache_top];if(!isMatched(left, expression[i])){returnfalse;}}}if(cache_top >-1)returnfalse;returntrue;}
计算分段函数
#include<iostream>usingnamespace std;#define MaxSize 20intCalculateWithStack(int m);intmain(){int m =13;
cout <<CalculateWithStack(m);return0;}intCalculateWithStack(int m){int cum =1;int cache[MaxSize];int top =-1;while(m !=0){
cache[++top]= m;
m /=3;}while(top!=-1)
cum *= cache[top--];return cum;}