c(2ms,96kb)/c++(2ms,96kb)因為吳教授的APCS講義有練習地回的題目,來練習,其實不是很理解eval()為何括號要空白,可能是因為void可省略吧。有X變數就寫X=eval();,有Y就寫X=eval();以此類推。每個函數return他的函式,參考原始碼如下,放C++的:
#include <cstdio>
int e()
{
int v,x,y,z;
char c;
if (scanf("%d",&v)==1)
return v;
scanf("%c",&c);
if(c=='f')
{
x=e();
return 2*x-3;
}
else if(c=='g')
{
x=e();
y=e();
return 2*x+y-7;
}
else if(c=='h')
{
x=e();
y=e();
z=e();
return 3*x-2*y+z;
}
}
int main() {
printf("%d\n", e());
return 0;
}