前端做网站使用的软件工具广州网站建设技术
前端做网站使用的软件工具,广州网站建设技术,html5微网站源码,杭州网站建设哪个好C程序设计语言 #xff08;第二版#xff09; 练习 4-5
练习 4-5 给计算器程序增加访问sin、exp与pow等库函数的操作。有关这些库函数的详细信息#xff0c;参见附录B.4节中的头文件math.h。
注意#xff1a;代码在win32控制台运行#xff0c;在不同的IDE环境下…C程序设计语言 第二版 练习 4-5
练习 4-5 给计算器程序增加访问sin、exp与pow等库函数的操作。有关这些库函数的详细信息参见附录B.4节中的头文件math.h。
注意代码在win32控制台运行在不同的IDE环境下有部分可能需要变更。
IDE工具Visual Studio 2010 代码块
#include stdio.h
#include stdlib.h
#include ctype.h
#include math.h
#include string.h#define MAXOP 100
#define NUMBER 0
#define MAXVAL 100
#define BUFSIZE 100int sp 0;
double val[MAXVAL];char buf[BUFSIZE];
int bufp 0;void push(double f){if(sp MAXVAL){val[sp] f;}else{printf(Error! Stack Full, cant push %g\n, f);}
}double pop(void){if(sp 0){return val[--sp];}else{printf(Error! Stack Empty!\n);return 0.0;}
}void printTop(void){if(sp 0){printf(Top: %g\n, val[sp-1]);}else{printf(Error! Stack Empty!\n);}
}void topCopy(void){if(sp 0 || sp MAXVAL){val[sp] val[sp-1];}else if(sp 0){printf(Error! Stack Empty!\n);}else{printf(Error! Stack Full!\n);}
}void swapTop(void){double temp;if(sp 2){temp val[sp-1];val[sp-1] val[sp-2];val[sp-2] temp;}else{printf(Cant Swap Top Number!\n);}
}void emptyStack(void){for(int i sp - 1; i 0; i--){val[i] 0;}sp 0;
}int getch(void){return (bufp 0) ? buf[--bufp] : getchar();
}void ungetch(int c){if(bufp BUFSIZE){printf(Ungetch! Too many characters!\n);}else{buf[bufp] c;}
}int getop(char s[]){int i, c;while((s[0] c getch()) || c \t);s[1] \0;if(c s){int next1 getch();int next2 getch();if(next1 i next2 n){return c;}}if(c e){int next1 getch();int next2 getch();if(next1 x next2 p){return c;}}if(c p){int next1 getch();int next2 getch();if(next1 o next2 w){return c;}}if(c -){int next getch();if(!isdigit(next) next ! .){ungetch(next);return c;}s[1] c next;i 1;}else{i 0;if(!isdigit(c) c ! .){return c;}}if(isdigit(c)){while(isdigit(s[i] c getch()));}if(c .){while(isdigit(s[i] c getch()));}s[i] \0;if(c ! EOF){ungetch(c);}return NUMBER;
}int main(){int type;double op2;char s[MAXOP];while((type getop(s)) ! EOF){switch(type){case NUMBER:push(atof(s));break;case :push(pop() pop());break;case *:push(pop() * pop());break;case -:op2 pop();push(pop() - op2);break;case /:op2 pop();if(op2 ! 0.0){push(pop() / op2);}else{printf(Error! Zero Divisor!\n);}break;case %:op2 pop();push((int)pop() % (int)op2);break;case s:op2 pop();push(sin(op2));break;case e:op2 pop();push(exp(op2));break;case p:op2 pop();push(pow(pop(), op2));break;case \n:printf(\t%.8g\n, pop());break;default:printf(Error! Unknown Command %s\n, s);break;}}system(pause);return 0;
}
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/89426.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!