check_stack.c
资源名称:C数据结构课程设计.rar [点击查看]
上传用户:janny_wxd
上传日期:2010-02-03
资源大小:261k
文件大小:1k
源码类别:
控制台编程
开发平台:
C/C++
- #include<stdio.h>
- #include<string.h>
- #define OPSETSIZE 7
- unsigned char Prior[7][7] = { // 表3.1 算符间的优先关系
- '>','>','<','<','<','>','>',
- '>','>','<','<','<','>','>',
- '>','>','>','>','<','>','>',
- '>','>','>','>','<','>','>',
- '<','<','<','<','<','=',' ',
- '>','>','>','>',' ','>','>',
- '<','<','<','<','<',' ','='
- };
- char OPSET[OPSETSIZE]={'+' , '-' , '*' , '/' ,'(' , ')' , '#'};
- int Operate(int a,unsigned char theta, int b) {
- switch(theta) {
- case '+': return a+b;
- case '-': return a-b;
- case '*': return a*b;
- case '/':
- {if(b==0){
- printf("除数不能为0!n");
- return 0;
- }
- else return a/b;
- }
- default : return 0;
- }
- }
- /*Status In(char Test,char* TestOp) {
- bool Find=false;
- for (int i=0; i< OPSETSIZE; i++) {
- if (Test == TestOp[i]) Find= true;
- }
- return Find;
- }
- */
- int ReturnOpOrd(char op,char* TestOp) {
- int i;
- for(i=0; i< OPSETSIZE; i++) {
- if (op == TestOp[i]) return i;
- }
- return 0;
- }
- char precede(char Aop, char Bop) {
- return Prior[ReturnOpOrd(Aop,OPSET)][ReturnOpOrd(Bop,OPSET)];
- }
- void main(){
- int a=3,b=4,c=0,result,d=43;
- char ch='*',ch4;
- char ch2='/';
- char ch3='+';
- result=Operate(a,d,c);
- ch4=precede(ch2,ch);
- printf("%d,%cn",result,ch4);
- }