前段时间写了一个简单的计算器程序,可以支持+-*/()和数字构成的表达式,每个表达式以分号结束,运行时向下面这样: $ ./a.out (2+3)*(-2+5); 15.000 有兴趣的可以编译后玩玩,源代码如下: #include <stdio.h> #include <stdlib.h> #define NONE -1 enum {NUM=256}; int lookahead; double token_val; int get_token() { int t; while(1){ t = getchar(); if(t == ' ' || t == '/t') ; else if( t == '/n') ; else if (isdigit(t)){ ungetc(t, stdin); scanf("%lf", &token_val); return NUM; }else if ( t == EOF) return t; else{ token_val = NONE; return t; //operators, parenthesis etc. } } } void match(int type) { if(lookahead =