F - 简单计算器

Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u

Description

读入一个只包含 +, -, *, / 的非负整数计算表达式,计算该表达式的值。 
 

Input

测试输入包含若干测试用例,每个测试用例占一行,每行不超过200个字符,整数和运算符之间用一个空格分隔。没有非法表达式。当一行中只有0时输入结束,相应的结果不要输出。 
 

Output

对每个测试用例输出1行,即该表达式的值,精确到小数点后2位。 
 

Sample Input

1 + 2
4 + 2 * 5 - 7 / 11
0
 

Sample Output

3.00
13.36
 
 
 //难了我很久,后来学习了栈,用一个栈就很简单啦。例如4 + 2 * 5 - 7 / 11,把4放入栈,把2*5的值放入栈,把-7/10的值放入栈,最后依次全部取出,计算总和。
 
 #include <iostream>
#include <stack>
#include <stdio.h>
using namespace std; int main()
{
double num1;
char ch;
while (cin>>num1)
{
stack<double> data;
ch=getchar();
if (num1==&&ch=='\n')
{
break;
}//结束 double num2;
while (cin>>ch)
{
if (ch=='+'||ch=='-')
{
cin>>num2;
if (ch=='-') num2=-num2;
data.push(num1);
num1=num2;
ch=getchar();
if (ch=='\n')
{
data.push(num1);
break;
}
}
if (ch=='*'||ch=='/')
{
cin>>num2;
if(ch=='*')
{
num1*=num2;
ch=getchar();
if (ch=='\n')
{
data.push(num1);
break;
}
}
if (ch=='/')
{
num1/=num2;
ch=getchar();
if (ch=='\n')
{
data.push(num1);
break;
}
}
}
}
double ans=;
while (!data.empty())
{
ans+=data.top();
data.pop();
}
printf("%.2lf\n",ans);
}
return ;
}

F - 简单计算器(栈)的更多相关文章

  1. hiho #1332 : 简单计算器 栈+递归

    #1332 : 简单计算器 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 编写一个程序可以完成基本的带括号的四则运算.其中除法(/)是整除,并且在负数除法时向0取整.( ...

  2. hdu-1237简单计算器(栈的运用)

    http://acm.hdu.edu.cn/showproblem.php?pid=1237 简单的栈的运用. 首先将数字和运算符分离,分别保存在两个数组中,然后按原来的式子的顺序,首先将第一个数和第 ...

  3. HDU1237 简单计算器 栈

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1237 题目大意:读入一个只包含 +, -, *, / 的非负整数计算表达式,计算该表达式的值. 题目分 ...

  4. HDU 1237 简单计算器 栈

    额,题目是中文的,题意就不用说了= =都看懂喽.写个字符串先把这行计算式存进去,不过不能存一个算一个,因为考虑到乘除法比加减法优先的原则,如果是加号减号就先存着等待计算,如果是乘号除号就直接算出来值就 ...

  5. 2016HUAS暑假集训训练题 F - 简单计算器

    Description 读入一个只包含 +, -, *, / 的非负整数计算表达式,计算该表达式的值.    Input 测试输入包含若干测试用例,每个测试用例占一行,每行不超过200个字符,整数和运 ...

  6. hdu 1237 简单计算器(栈处理)

    简单计算器 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submi ...

  7. HDU1237 简单计算器 【栈】+【逆波兰式】

    简单计算器 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Subm ...

  8. hdu1237 简单计算器[STL 栈]

    目录 题目地址 题干 代码和解释 参考 题目地址 hdu1237 题干 代码和解释 解本题时使用了STL 栈,要记得使用#include<stack>. 解本题时使用了isdigit()函 ...

  9. 重读The C programming Lanuage 笔记三:简单计算器程序

    //简单计算器 #include <stdio.h> #include <stdlib.h> #include <ctype.h> #include <str ...

随机推荐

  1. redux-actions

    其作用都是用来简化action.reducer. 1.安装 npm install --save redux-actions // 或 yarn add redux-actions 2.使用 crea ...

  2. WPF入门教程系列三

    WPF之Binding的使用(一) 一.  前言 初学WPF经常被Binding搞得苦不堪言,Binding的重用性就不做介绍了,在WPF应用程序开发中Binding是一个非常重要的部分.WPF也是近 ...

  3. Blocking & Nonblocking module

    /*************************************************** /  Blocking and Nonblocking circuit and Simulat ...

  4. android studio - 隐藏编辑器标签块上面的索引

  5. PILE读书笔记_进程环境

    进程是操作系统运行程序的一个实例, 也是操作系统分配资源的单位. 在Linux环境中, 每个进程都有独立的进程空间, 以便对不同的进程进行隔离, 使之不会互相影响. atexit函数 #include ...

  6. 关于linux系统下 无法解析主机的问题

    linux无法解析主机 xxx: 解决方法: 1. sudo gedit /etc/hosts 找到如下行: 127.0.1.1       XXX 将其修改为: 127.0.1.1       (你 ...

  7. python C PyObject

    #include"Python.h" //three ways : /* PyObject *MyFunction(PyObject *self, PyObject *args); ...

  8. java中获取长链接的域名

    示例:长链接:https://www.baidu.com?a=1&b=2 域名:www.baidu.com static String getDomainUrl(String url) { S ...

  9. linux命令-进阶1

    Linux查看系统信息的一些命令及查看已安装软件包的命令 centos下如何查看某个软件是否安装http://www.landui.com/help/show-3959.html CentOS 下 r ...

  10. linux $* 和$@ if [ ](字符串比较)

    $* 将命令后面的参数理解为一个类似为字符串,$@理解为多个单个的参数,类似理解成数据 $#参数总数 [root@mini0 test]# ./test4.sh jskd sj21 Using the ...