단순 표현식의 계산---귀속적 방법

8485 단어
주의: 인용 바늘에 값을 부여할 때, 변수여야 합니다!!!
 1 #include
 2 #include
 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 }

 
다음으로 전송:https://www.cnblogs.com/yihua/archive/2013/03/06/2947029.html

좋은 웹페이지 즐겨찾기