跳至内容
Dokuwiki
用户工具
登录
站点工具
搜索
工具
显示页面
过去修订
反向链接
最近更改
媒体管理器
网站地图
登录
>
最近更改
媒体管理器
网站地图
您的足迹:
paste
页面已锁定
本页面目前正被其他用户编辑。您要等到该用户完成编辑或锁定因过期而自动解除后才能编辑。
目前已被下列人员锁定:
216.73.216.220
预计锁定解除于:
2026/09/04 18:33 (12 min)
本页面只读。您可以查看源文件,但不能更改它。如果您觉得这是系统错误,请联系管理员。
====== Copy and Paste ====== 沉浸式翻译\\ saladict This page is used for copy and paste sharing. In yaml <code C> #define MAXOP 20 #define NUMBER '0' #define TOOBIG '9' #define EOF 0 main() { int type; char s[MAXOP]; double op2, atof(), pop(), push(); while ((type = getop(s, MAXOP)) != EOF) switch (type){ case NUMBER: push(atof(s)); break; case '+': push(pop() + pop()); break; case '*': push(pop() * pop()); break; case '-': op2 = pop(); if (op2 != 0.0) push(pop() - op2); break; case '/': op2 = pop(); if (op2 != 0.0) push(pop() / op2); else printf("zero divisor popped\n"); break; case '=': printf("\t%f\n", push(pop())); break; case 'c': clear(); case TOOBIG: printf("%.20s ... is too long\n", s); break; default: printf("unknow command %c\n", type); break; } #define MAXVAL 100 int sp = 0; double val[MAXVAL]; double push(f) double f; { if(sp < MAXVAL) return(val[sp++] = f); else { printf("error: stack full\n"); clear(); return(0); } } double pop() { if(sp > 0) return(val[--sp]); else{ printf("error: stack empty\n"); clear(); return(0); } } clear() { sp = 0; } char mygetchar(); getop(s, lim) char s[]; int lim; { int i, c; while ((c = getch()) == ' ' || c == '\t' || c == '\n') ; if(c != '.' && (c < '0' || c > '9')) return(c); s[0] = c; for (i = 1; getCharAndInRange(&c, mygetchar, '0', '9'); i++) /* Same as for (i = 1; (c = getchar()) >= '0' && c <= '9'; i++)*/ /* 这里为了写出函数指针,强行弄了个函数getCharAndInRange*/ if(i < lim) s[i] = c; if (c == '.') { if (i < lim) s[i] = c; for(i++; (c = getchar()) >= '0' && c <= '9'; i++) if (i < lim) s[i] = c; } if (i < lim) { ungetch(c); s[i] = '\0'; return(NUMBER); } else { while (c != '\n' && c != EOF) c = getchar(); s[lim -1] = '\0'; return(TOOBIG); } } #define BUFSIZE 100 char buf[BUFSIZE]; int bufp = 0; getch() { return((bufp>0) ? buf[--bufp] : getchar()); } ungetch(c) int c; { if(bufp > BUFSIZE) printf("ungetch: too many characters\n"); else buf[bufp++] = c; } char mygetchar() { return(getchar()); } getCharAndInRange(pchar, getCharFunc, start, end) char *pchar; int (*getCharFunc)(), start, end; { *pchar = (*getCharFunc)(110); return(*pchar >= start && *pchar <= 9); } </code> ==== Ignore me ==== https://jx.jsonplayer.com/player/?url=https://v.qq.com/x/cover/mzc00200ct230h1/j00464box2d.html https://yangtu.top/
paste.1696669590.txt.gz
· 最后更改:
2023/10/07 09:06
由
root
· 目前已被下列人员锁定:
216.73.216.220
页面工具
显示页面
过去修订
反向链接
回到顶部