K&R的名著:<C程序设计语言>小程序总结2
2012-10-07 20:59
375 查看
1、push函数:把f压入到值栈中
2、pop函数:弹出并返回栈顶的值
3、简易计算器(逆波兰表示法)
#define MAXVAL 100 int sp = 0; double val[MAXVAL]; void push(void) { if (sp < MAXVAL) val[sp++] = f; else printf("error: stack full, can't push %g\n",f); }
2、pop函数:弹出并返回栈顶的值
double pop(void) { if (sp > 0) return val[--sp]; else { printf("error: stack empty!\n"); return 0.0; } }
3、简易计算器(逆波兰表示法)
#include<stdio.h> #include<stdlib.h> #define MAXOP 100 #define NUMBER '0' int getop(char []); void push(double); double pop(void); int main(void) { 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 '-': op2 = pop(); push(pop()- op2); break; case '*': push(pop() * pop()); break; case '/': op2 = pop(); if (op2 != 0.0) push(pop() / op2); else printf("error: zero divisor\n"); break; case '\n': printf("\t%.8g\n",pop()); default: printf("error: unknown command %s\n",s); break; } } return 0; } #define MAXVAL 100 int sp = 0; double val[MAXVAL]; void push(double f) { if (sp < MAXVAL) val[sp++] = f; else printf("error: stack full, can't push %g\n", f); } double pop(void)\ { if (sp > 0) return val[--sp]; else { printf("error: stack empty!\n"); return 0.0; } } #include<ctype.h> int getch(void); void ungetch(int); int getop(char s[]) { int i, c; while ((s[0] = c = getch()) == ' ' || c == '\t') ; s[1] ='\0'; if (!isdigit(c) && c!='.') return c; i = 0; 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; } #define BUFSIZE 100 charbuf[BUFSIZE]; int bufp = 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; }
相关文章推荐
- K&R的名著:<C程序设计语言>小程序总结4
- K&R的名著:<C程序设计语言>小程序总结8结构体
- K&R的名著:<C程序设计语言>小程序总结6
- K&R的名著:<C程序设计语言>小程序总结1
- K&R的名著:<C程序设计语言>小程序总结5
- K&R的名著:<C程序设计语言>小程序总结7指针
- K&R的名著:<C程序设计语言>小程序总结p117统计关键字
- K&R的名著:<C程序设计语言>小程序总结3
- K&R名著<C程序设计语言>p103函数指针:串联以前小程序
- <<c程序设计语言>>-4- 函数与程序结构
- <<c程序设计语言>>第三章 程序控制流
- K&R的名著:<C程序设计语言>自引用结构
- 某程序设计语言中的pair是如下方式定义:type:=int|pair<type,type>.
- 七大排序算法总结 JavaScript <堆还没写…………待续>
- [原]java专业程序代写(qq:928900200),学习笔记之基础入门<Oracle_查询>(三十四)
- <转>用特征码秒杀各程序语言按钮事件
- <C++>计算程序运行时间
- <Lua程序设计(第二版)>书摘-9
- 所有的问题, 包括自己想象的问题 <<总结项目用到的设计模式>>
- <Android> Android之Adapter用法总结