加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

C++实现顺序计算输入表达式的值

发布时间:2020-12-15 04:42:54 所属栏目:百科 来源:网络整理
导读:div class="cnblogs_code" #include /spanspan style="color: #0000ff;"gt;string/spanspan style="color: #000000;"gt; str;l: cin/spanspan style="color: #000000;"gt;str; /spanspan style="color: #0000ff;"gt;char/span *span style="color: #000000;"

<div class="cnblogs_code">

#include 
     </span><span style="color: #0000ff;"&gt;string</span><span style="color: #000000;"&gt; str;
l:    cin</span>>><span style="color: #000000;"&gt;str;
    </span><span style="color: #0000ff;"&gt;char</span> *<span style="color: #000000;"&gt;a;
      strncpy(a,str.c_str(),str.length());</span><span style="color: #008000;"&gt;//</span><span style="color: #008000;"&gt;将输入的字符串转换为字符数组 </span>
    <span style="color: #0000ff;"&gt;int</span> b[<span style="color: #800080;"&gt;100</span><span style="color: #000000;"&gt;];
    </span><span style="color: #0000ff;"&gt;char</span> c[<span style="color: #800080;"&gt;100</span>];<span style="color: #008000;"&gt;//</span><span style="color: #008000;"&gt;准备b,c数组分别来存储依次输入的数字与运算符字符 </span>
    <span style="color: #0000ff;"&gt;int</span> k=<span style="color: #800080;"&gt;0</span>,l=<span style="color: #800080;"&gt;0</span><span style="color: #000000;"&gt;;
    </span><span style="color: #0000ff;"&gt;int</span> sum=<span style="color: #800080;"&gt;0</span><span style="color: #000000;"&gt;;
     </span><span style="color: #0000ff;"&gt;for</span>(<span style="color: #0000ff;"&gt;int</span> i=<span style="color: #800080;"&gt;0</span>;i<str.length();i++<span style="color: #000000;"&gt;)
    {
        </span><span style="color: #0000ff;"&gt;if</span><span style="color: #000000;"&gt;(isdigit(a[i]))
        {
            b[k</span>++]=a[i]-<span style="color: #800080;"&gt;48</span><span style="color: #000000;"&gt;;
        }
        </span><span style="color: #0000ff;"&gt;else</span><span style="color: #000000;"&gt;
        {
            </span><span style="color: #0000ff;"&gt;if</span>(a[i]!=<span style="color: #800000;"&gt;'</span><span style="color: #800000;"&gt;+</span><span style="color: #800000;"&gt;'</span> &amp;&amp; a[i]!=<span style="color: #800000;"&gt;'</span><span style="color: #800000;"&gt;-</span><span style="color: #800000;"&gt;'</span> &amp;&amp; a[i]!=<span style="color: #800000;"&gt;'</span><span style="color: #800000;"&gt;*</span><span style="color: #800000;"&gt;'</span>)<span style="color: #008000;"&gt;//</span><span style="color: #008000;"&gt;来判断输入的运算符是否合理。 </span>

<span style="color: #000000;"> {
cout<<<span style="color: #800000;">"<span style="color: #800000;">输入有误:请重新输入:(只能是包含数字和+ - *字符)<span style="color: #800000;">"<<<span style="color: #000000;">endl;
<span style="color: #0000ff;">goto<span style="color: #000000;"> l;
}
<span style="color: #0000ff;">else<span style="color: #000000;">
{
c[l++]=<span style="color: #000000;">a[i];
}

        }
    }
     </span><span style="color: #0000ff;"&gt;int</span> count=<span style="color: #800080;"&gt;0</span><span style="color: #000000;"&gt;;
     </span><span style="color: #0000ff;"&gt;for</span>(<span style="color: #0000ff;"&gt;int</span> i=<span style="color: #800080;"&gt;0</span>;i<<span style="color: #800080;"&gt;100</span>;i++<span style="color: #000000;"&gt;)
     {
         </span><span style="color: #0000ff;"&gt;if</span>(b[i]!=<span style="color: #800080;"&gt;0</span><span style="color: #000000;"&gt;)
         {
             count</span>++<span style="color: #000000;"&gt;;
         }
     }
    </span><span style="color: #0000ff;"&gt;int</span> z=<span style="color: #800080;"&gt;1</span><span style="color: #000000;"&gt;;
    sum</span>=b[<span style="color: #800080;"&gt;0</span><span style="color: #000000;"&gt;];
    </span><span style="color: #0000ff;"&gt;while</span>(z<<span style="color: #000000;"&gt;count) 
    {
        </span><span style="color: #0000ff;"&gt;int</span> zz=z-<span style="color: #800080;"&gt;1</span><span style="color: #000000;"&gt;;
        </span><span style="color: #0000ff;"&gt;switch</span>(c[zz])<span style="color: #008000;"&gt;//</span><span style="color: #008000;"&gt;来判断输入的运算符。 </span>

<span style="color: #000000;"> {
<span style="color: #0000ff;">case <span style="color: #800000;">'<span style="color: #800000;">+<span style="color: #800000;">'<span style="color: #000000;">:
sum=sum+<span style="color: #000000;">b[z];
<span style="color: #0000ff;">break<span style="color: #000000;">;
<span style="color: #0000ff;">case <span style="color: #800000;">'<span style="color: #800000;">-<span style="color: #800000;">'<span style="color: #000000;">:
sum-=<span style="color: #000000;">b[z];
<span style="color: #0000ff;">break<span style="color: #000000;">;
<span style="color: #0000ff;">case <span style="color: #800000;">'<span style="color: #800000;"><span style="color: #800000;">'<span style="color: #000000;">:
sum=sum
<span style="color: #000000;">b[z];
<span style="color: #0000ff;">break<span style="color: #000000;">;
}
++<span style="color: #000000;">z;
}
cout<<sum<<endl; <span style="color: #008000;">//<span style="color: #008000;">输出最终结果。
<span style="color: #0000ff;">return <span style="color: #800080;">0<span style="color: #000000;">;
}

如下实例:

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读