题目
代码
#include <iostream>
using namespace std;
//将String转化为double
double realnumber(char* String){
int ptr;
double temp, result=0;
for(ptr=0; (String[ptr]!='.')&&(String[ptr]!=0); ptr++);
for(int cnt=ptr-1, temp = 1; cnt>=0; cnt--, temp*=10)
result += temp*(String[cnt]-'0');
for(int cnt=ptr+1, temp = 0.1; String[cnt]!=0; cnt++, temp/=10)
result += temp*(String[cnt]-'0');
return result;
}
float expression(){
char String[20];
cin >> String;
switch(String[0]){
case '+': return expression()+expression();
case '-': return expression()-expression();
case '*': return expression()*expression();
case '/': return expression()/expression();
default: return realnumber(String);
}
}
int main(){
cout << expression();
return 0;
}