关闭

计算器2

218人阅读 评论(0) 收藏 举报
给你一个不带括号的表达式,这个表达式只包含加、减、乘、除,请求出这个表达式的最后结果,最后结果一定是整数(不是原题,不过就是这种类型);
Input
一个数学表达式,只包括数字,数字保证是非负整数,以及五种运算符"+","-","*","/","=";数字和运算符之间有一个或者多个空格,运算符的总数不会超过100,最后以"="号结尾,表示表达式结束。
Output
整数;
Sample Input
1 + 2 + 3 * 6 / 9 =
Sample Output
5

#include <iostream>
#include<algorithm>
#include<string.h>
#include<stack>
using namespace std;
stack<int> S;
char b[100];
int main() {
        while(S.empty()==false)
             {S.pop();
            }
    char a[100];
    gets(a);
    int lengtha= strlen(a);
    int n=0;
    int sum=0;
    for(int i=0;i<lengtha;i++)//去掉空格, 
   {
    if(a[i]!=' ')
    {
        b[n++]=a[i];
    }else
    {
        continue;
    }
     }
    int lengthb=strlen(b);
    int i=0;
     while(i<lengthb)
     {
         if(i==0)
         {
             if(b[i]>='0'&&b[i]<='9')
             {
                  int num=b[i]-'0';
             S.push(num);
             //cout<<S.top()<<endl;
             i++;
             }else if(b[i]=='-')
             {
            int num=-(b[1]-'0');
             S.push(num);
             //cout<<S.top()<<endl;
                  i+=2;
             }
            
         }else if(b[i]=='+'&&b[i+1]>='0'&&b[i+1]<='9')
         {
             int num=b[i+1]-'0';
             S.push(num);
         //    cout<<S.top()<<endl;
             i+=2;
         }else if(b[i]=='-'&&b[i+1]>='0'&&b[i+1]<='9')
         {
             int num=-(b[i+1]-'0');
             S.push(num);
         //    cout<<S.top()<<endl;
             i+=2;
         }else if(b[i]=='*'&&b[i+1]>='0'&&b[i+1]<='9')
         {
             int num=b[i+1]-'0';
             int a=S.top();
             S.pop();
             S.push(a*num);
             i+=2;
         //    cout<<S.top()<<endl;
         } else if(b[i]=='/'&&b[i+1]>='0'&&b[i+1]<='9')
         {
             int num=b[i+1]-'0';
             int a=S.top();
             S.pop();
             S.push(a/num);
             i+=2;
         //    cout<<S.top()<<endl;
         }
         else if(b[i]=='=')
         {
             while(S.empty()==false)
             {
             //    cout<<S.top()<<endl;
                 sum+=S.top();
                 S.pop();        
             }
                 break;
             i++; 
         }
     }
     cout<<sum<<endl;
    return 0;
}

 

0
0
查看评论

Swift Apple-计算器-Demo源码解读

【Demo 下载】如图: 涉及到以下知识: do { } catch let error { } try throws guard extension contains UIStackView 布局 - UIStackView throws配合...
  • Xoxo_x
  • Xoxo_x
  • 2017-08-13 19:29
  • 449

在计算器中如何计算以2为底3的对数 log 2 3

log如果没有写底数,默认是以10为底的,一般计算器中也是这样的.另外还有一种写作ln,是以e为底的,无论哪种都一样 .计算log2 3其实只要计算log3/log2就可以了,也可以用ln3/ln2结果都是一样的 .PS.log2 3=1.584,你可以拿计算器按一按 但是不可以约分或者化简哦...
  • qq_34131212
  • qq_34131212
  • 2017-12-14 15:03
  • 561

java高级计算器的实现

不仅可以实现+-*/,
  • u013762572
  • u013762572
  • 2014-10-25 14:23
  • 964

Swift 实践之简单计算器

使用Storyboard快速而又方便的进行控件的布局,功能操作简单的进行一些运算;代码实现// // ViewController.swift // Swift_Calculator // // Created by 周文春 on 16/3/2. // Copyright © 20...
  • qq_29284809
  • qq_29284809
  • 2016-03-04 16:13
  • 2034

casio计算器fx82es刷机实现十进制转其他进制的模式

首先打开计算器电源(ON)   注:()代表注释 ( )代表第二功能键   1.shift   2.(Pol)   3.1   4.shift   5.(,)   6.0   7.)   ...
  • Q98842674
  • Q98842674
  • 2014-03-06 19:26
  • 3173

使用lex与yacc构建简单计算器

  Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 <object cl
  • crond123
  • crond123
  • 2009-02-24 13:55
  • 4053

mac自带计算器 进制转换

这是mac普通版计算器 点击显示-编程器 变成这样 好了,可以用了
  • aoliuer117
  • aoliuer117
  • 2016-12-10 10:46
  • 1936

用计算器算以2为底的对数

如果要计算log 2 8 【前面一个是底数】 那么按键如下: 8, log, ÷,2,log 或 8,ln,÷,2,ln 原因是对数有这样一个特性 即 log a b= (log c b)÷(log c a)
  • kewb_2013
  • kewb_2013
  • 2013-03-26 12:55
  • 1067

swift做一个简单的计算器

1.新建一个工程,选择ios Application -> Single View Application -> Next -> Product Name:SimpleCalulater, Language:Swift,Devices:IPhone -> Next ->...
  • tujiaw
  • tujiaw
  • 2015-03-08 14:32
  • 5327

2、ubuntu基本操作 - 进制转换(命令方式)

进制转换命令 -->bc bc命令是一个很好用的term计算器。我们要用到 bc的ibase和obase方法。 ibase是输入数字的进制,而obase就是输出数字的进制了。 如果用一条命令来转数字,可以用echo命令和管道结合bc。如下: 10进制转2进制: $ echo &q...
  • rig622
  • rig622
  • 2012-07-12 11:51
  • 2377
    个人资料
    • 访问:72960次
    • 积分:1367
    • 等级:
    • 排名:千里之外
    • 原创:149篇
    • 转载:8篇
    • 译文:0篇
    • 评论:5条
    最新评论