注意:把一个值赋给引用指针时,它必须是一个变量!!!
1 #include<cstdio> 2 #include<iostream> 3 using namespace std; 4 5 double statement(char* &p) 6 { 7 double a; 8 a=*p-'0'; 9 p++; 10 while(*p=='*'||*p=='/') 11 { 12 if(*p=='/') 13 { 14 p++; 15 a/=*p-'0'; 16 } 17 else 18 { 19 p++; 20 a*=*p-'0'; 21 } 22 p++; 23 } 24 return a; 25 } 26 27 void expession(char* &p) 28 { 29 bool isMinux;//是否为减号 30 double value=0.0; 31 32 if(*p=='-') 33 { 34 isMinux=true; 35 value=-statement(++p); 36 } 37 else if(*p=='+'){p++;value=*p-'0';p++;} 38 else {value=*p-'0';p++;} 39 40 while(*p=='+'||*p=='-') 41 { 42 if(*p=='+') 43 { 44 value+=statement(++p); 45 } 46 else 47 { 48 value-=statement(++p); 49 } 50 p++; 51 } 52 if(*p=='\0')cout<<value; 53 else 54 { 55 cout<<"式子不符合规范!"<<endl; 56 } 57 } 58 59 int main() 60 { 61 char p[100]; 62 cin>>p; 63 char *a=p; 64 expession(a); 65 cin>>p; 66 }