题目1019:简单计算器

时间限制:1 秒

内存限制:32 兆

特殊判题:

提交:6346

解决:2334

题目描述:
    读入一个只包含 +, -, *, / 的非负整数计算表达式,计算该表达式的值。
输入:
    测试输入包含若干测试用例,每个测试用例占一行,每行不超过200个字符,整数和运算符之间用一个空格分隔。没有非法表达式。当一行中只有0时输入结束,相应的结果不要输出。
输出:
    对每个测试用例输出1行,即该表达式的值,精确到小数点后2位。
样例输入:
1 + 2
4 + 2 * 5 - 7 / 11
0
样例输出:
3.00
13.36
来源:
2006年浙江大学计算机及软件工程研究生机试真题
 #include <stdio.h>
#include <cstring>
#include <queue>
#include <iostream>
using namespace std;
double stack[];
int main(){
//freopen("D:\\INPUT.txt","r",stdin);
int tail;
double num;
while(cin>>num&&num!=){
//cout<<num<<endl;
tail=;
memset(stack,,sizeof(stack));
stack[tail++]=num;
//cout<<stack[tail-1]<<endl;
char c1,cal;
//cout<<"1"<<endl;
while(scanf("%c",&c1)){
//cout<<c1<<endl;
if(c1=='\n'){
//cout<<1<<endl;
break;
}
//cout<<2<<endl;
scanf("%c %lf",&cal,&num);
//cout<<num<<endl;
//cout<<cal<<endl;
switch(cal){
case '+':{
stack[tail++]=num;
//cout<<stack[tail-1]<<endl;
break;
}
case '-':{
stack[tail++]=-num;
//cout<<stack[tail-1]<<endl;
break;
}
case '*':{
tail--;
stack[tail]=stack[tail]*num;
tail++;
//cout<<stack[tail]<<endl;
break;
}
case '/':{
tail--;
stack[tail]=stack[tail]/num;
tail++;
//cout<<stack[tail]<<endl;
break;
}
}
}
int i;
double sum=;
for(i=;i<tail;i++){
sum+=stack[i];
//cout<<stack[i]<<endl;
}
printf("%.2lf\n",sum);
}
return ;
}

九度oj题目1019:简单计算器的更多相关文章

  1. 九度oj 题目1019:简单计算器

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

  2. hdu 1284 关于钱币兑换的一系列问题 九度oj 题目1408:吃豆机器人

    钱币兑换问题 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Sub ...

  3. 九度oj题目&amp;吉大考研11年机试题全解

    九度oj题目(吉大考研11年机试题全解) 吉大考研机试2011年题目: 题目一(jobdu1105:字符串的反码).    http://ac.jobdu.com/problem.php?pid=11 ...

  4. 九度OJ 题目1384:二维数组中的查找

    /********************************* * 日期:2013-10-11 * 作者:SJF0115 * 题号: 九度OJ 题目1384:二维数组中的查找 * 来源:http ...

  5. 九度oj 题目1007:奥运排序问题

    九度oj 题目1007:奥运排序问题   恢复 题目描述: 按要求,给国家进行排名. 输入:                        有多组数据. 第一行给出国家数N,要求排名的国家数M,国家号 ...

  6. 九度oj 题目1087:约数的个数

    题目链接:http://ac.jobdu.com/problem.php?pid=1087 题目描述: 输入n个整数,依次输出每个数的约数的个数 输入: 输入的第一行为N,即数组的个数(N<=1 ...

  7. 九度OJ题目1105:字符串的反码

    tips:scanf,cin输入字符串遇到空格就停止,所以想输入一行字符并保留最后的"\0"还是用gets()函数比较好,九度OJ真操蛋,true?没有这个关键字,还是用1吧,还是 ...

  8. 九度oj题目1009:二叉搜索树

    题目描述: 判断两序列是否为同一二叉搜索树序列 输入:                        开始一个数n,(1<=n<=20) 表示有n个需要判断,n= 0 的时候输入结束. 接 ...

  9. 九度oj题目1002:Grading

    //不是说C语言就是C++的子集么,为毛printf在九度OJ上不能通过编译,abs还不支持参数为整型的abs()重载 //C++比较正确的做法是#include<cmath.h>,cou ...

随机推荐

  1. 关于HTTP协议传输与接收数据的相关内容

    第一篇: HTTP请求报文和HTTP响应报文 http://www.cnblogs.com/biyeymyhjob/archive/2012/07/28/2612910.html 第二篇: 深入浅出U ...

  2. Linux常用开发指令

    gcc mysqltest.c -o mysqltest `mysql_config –cflags –libs`

  3. 【MVC】分布视图带参数

    1.调用 <!--底部菜单--> @Html.Action(, itemTypeId = , itemId = ViewBag.Id }) 2.定义 public class ItemPu ...

  4. 爬虫--使用scrapy爬取糗事百科并在txt文件中持久化存储

    工程目录结构 spiders下的first源码 # -*- coding: utf- -*- import scrapy from firstBlood.items import Firstblood ...

  5. [Asp.net Mvc]为js,css静态文件添加版本号

    方式一: 思路 string version = ViewBag.Version; @Scripts.RenderFormat("<script type=\"text/ja ...

  6. 云课堂Android模块化实战--如何设计一个通用性的模块

    本文来自 网易云社区 . 如何设计一个通用性的模块 前言 每个开发者都会知道,随着项目的开发,会发现业务在不断壮大,产品线越来越丰富,而留给开发的时间却一直有限,在有限的时间,尽快完成某个功能的迭代. ...

  7. os模块详解

    python编程时,经常和文件.目录打交道,这是就离不了os模块.os模块包含普遍的操作系统功能,与具体的平台无关.以下列举常用的命令 1. os.name——判断现在正在实用的平台,Windows ...

  8. request.getSession()、reqeust.getSession(false)和request.getSession(true)

    getSession()/getSession(true):当session存在时返回该session,否则新建一个session并返回该对象 getSession(false):当session存在 ...

  9. [译文]casperjs的API-colorizer模块

    colorizer模块包含了一个Colorizer类,它能够生成一个标准化的颜色字符串: var colorizer = require('colorizer').create('Colorizer' ...

  10. Hibernate 使用log4j日志记录

    日志记录使程序员能够将日志详细信息永久写入文件.这是我们以后在开发当中非常重要的一步. Hibernate使用log4j日志记录,我们需要以下几个步骤: 1.导入jar包: (1)这是hibernat ...