• 简单表达式的计算用递归的方法


    注意:把一个值赋给引用指针时,它必须是一个变量!!!

     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 }
    别让别人来告诉你,你成不了才,如果你有梦想的话,就要去捍卫它---当幸福来敲门
  • 相关阅读:
    Redis 主从复制
    Redis 持久化
    Redis 的消息订阅/发布
    Redis 排序功能 -- SORT
    Redis 过期时间与缓存应用
    Redis 事务
    Redis 5种数据类型的常用命令
    Java 框架的核心 -- 反射
    类的加载和初始化 ---- new 一个对象时,在JVM 中的过程是什么
    了解spring
  • 原文地址:https://www.cnblogs.com/yihua/p/2947029.html
Copyright © 2020-2023  润新知