ZCMU-1127-(stringstream的应用)
2017-01-04 17:53
169 查看
1127: 第三章:再见,林静!
Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 61 Solved: 13
[Submit][Status][Web
Board]
Description
郑薇的专业是土木工程,理工科的女生原本就是珍稀动物,而且大多数都长得比较抽象。想她郑微虽然不是什么绝代美女,跟她漂亮的妈妈相比也有一定差距,但她有一张讨喜的圆脸,小巧的尖下巴,大而灵动的眼睛,秀气挺直的鼻子,尤其是皮肤白皙无瑕——这是妈妈也承认自己年轻的时候也比不上的。因此,根据郑微自己无数次揽镜自照的鉴定结果,她绝对称得上是人见人爱、花见花开的美少女,简直就是琼瑶阿姨笔下的女主角。虽然琼瑶阿姨的小说已经落伍几个世纪了,但阿姨的审美观还是历久弥新的,看她挑中的连续剧女主角一个比一个红就知道了。就连一向很少夸人的林静也曾说过郑微不说话的时候还是相当有迷惑性的,称得上“静若处子”。当然,郑微很自觉地过滤掉了他后半句“动若疯兔”的评价,完全当做他对她的肯定。如今想起林静,她的脸上只是微微一笑。生性豁达的郑薇,埋藏起自己的爱情,开始过上大学时代的忙碌生活。
土木工程的数学题:给定一些没有括号的四则运算表达式,求其结果。
Input
输入数据中含有一些表达式(数量≤1000,长度按含有的运算计,运算符≤30),表达式的运算符只含有加、减、乘、除。表达式中每个数的精度范围在double型内,表达式中没有任何其他运算符,没有括号。Output
对每个表达式,计算其结果。按科学计数法输出,精度按6位小数,每个结果应占独立一行。如果表达式发生除0的情况,则对该表达式直接输出“DivByZero”。Sample Input
3+5.06-2*7
6-2/0
3+5*6+1
3+5+1*7
1+2-3*4+5/6-4*3*2*1*1+2+3+4+5
Sample Output
8.000000e+00-8.000000e+00
DivByZero
3.400000e+01
1.500000e+01
-1.816667e+01
HINT
输出结果请使用printf("%e\n",ans);或者cout<<scientific<<ans<<endl;【解析】
此题看了大佬的做法发现了一个新的知识点那就是sstream里的stringstream有了这样我们就比较好判断了,我们能把每一个运算符里面的数据都能读入就是说我们可以让它这么算,st>>number如果我们把number定义的是double型,number就得到比如说3+5.0的那个3,然后就是st>>c>>number
如果c是char型,我们就这里c就变成了‘+’号,因为是先乘除后加减,所以我们先让乘除先算,把加和减的运算符先存着,之后再进行运算。这个时候stringstream的作用就体现出来了。
#include<iostream> #include<cstring> #include<vector> #include<cstdio> #include<sstream> using namespace std; vector<double> a; vector<char>p; int main() { string s; double number; char c; while(cin>>s) { a.clear();//清空容器 p.clear(); stringstream st(s); st>>number; a.push_back(number); double k=0; while(st>>c>>number) { if(c=='*') a.back()*=number; else { if(c=='/') { if(number==0) { printf("DivByZero\n"); goto out; } else a.back()/=number; } else { p.push_back(c); a.push_back(number); } } } k=a[0]; for(int i=0;i<p.size();i++) { if(p[i]=='+') k+=a[i+1];//算加减运算 else k-=a[i+1]; } printf("%e\n",k); out:; } return 0; }
相关文章推荐
- istringstream在读文件时候的应用
- leetcode 636. Exclusive Time of Functions 函数的单独运行时间 + stringstream很好应用
- (2012.03.24)Std::StringStream的小心应用
- CSU 1826:Languages(stringstream的应用)
- 字符串流的应用(stringstream\ istringstream ostringstream)
- Java基本的API中,String,StringBuffer,Math,Wapper class的基本应用
- 在Asp.Net 2.0中应用DataFormatString
- C++的iostream标准库介绍---之stringstream
- asp.net下DataSet.WriteXml(String)与(Stream)的区别
- asp.net 设置字符串格式与string.Format的应用
- stringgrid 应用例子
- asp.net下DataSet.WriteXml(String)与(Stream)的区别
- 在Asp.Net 2.0中应用DataFormatString
- vc2005 stringstream 内存泄漏
- JAVA :Stream to String
- 经验总结]把string转化为stream,把一个xmlstring片断转化为dataset,导致写入stream的东西读不出来等
- Java基本的API中,String,StringBuffer,Math,Wapper class的基本应用
- String.replaceAll()在统计大小写字母个数中的应用
- std::stringstream只适合作字符串格式化
- 利用ADODB.Stream实现 Bytes到String的指定编码的转换