递归下降法整数运算.cpp
来自「该程序使用了递归下降算法进行算术表达式的计算」· C++ 代码 · 共 72 行
CPP
72 行
#include "递归下降法整数运算.h"
char TOKEN;
void get_token () {
TOKEN = getchar ();
}
void match (char c) {
if (TOKEN == c) get_token ();
}
int command () {
int result = expression ();
return result;
}
int expression () {
int result = term ();
while (TOKEN == '+' || TOKEN == '-') {
char tmp = TOKEN;
get_token ();
tmp == '+' ?
result += term () : result -= term ();
}
return result;
}
int term () {
int result = factor ();
while (TOKEN == '*' || TOKEN == '/') {
char tmp = TOKEN;
get_token ();
tmp == '*' ?
result *= factor () : result /= factor ();
}
return result;
}
int factor () {
int result;
if (TOKEN == '(') {
get_token ();
result = expression ();
match (')');
} else
result = number ();
return result;
}
int number () {
int result = digit ();
get_token ();
while (TOKEN <= 57 && TOKEN >= 48) {
result = 10 * result + digit ();
get_token ();
}
return result;
}
int digit () {
int result = TOKEN - '0';
return result;
}
void parse () {
get_token ();
int result = command ();
printf ("The result of this expression is: %d\n", result);
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?