1127: 第三章:再见,林静!
Time Limit: 10 Sec Memory Limit: 128 MB[ Submit][ Status][ Web Board]
Description
郑薇的专业是土木工程,理工科的女生原本就是珍稀动物,而且大多数都长得比较抽象。想她郑微虽然不是什么绝代美女,跟她漂亮的妈妈相比也有一定差距,但她有一张讨喜的圆脸,小巧的尖下巴,大而灵动的眼睛,秀气挺直的鼻子,尤其是皮肤白皙无瑕——这是妈妈也承认自己年轻的时候也比不上的。因此,根据郑微自己无数次揽镜自照的鉴定结果,她绝对称得上是人见人爱、花见花开的美少女,简直就是琼瑶阿姨笔下的女主角。虽然琼瑶阿姨的小说已经落伍几个世纪了,但阿姨的审美观还是历久弥新的,看她挑中的连续剧女主角一个比一个红就知道了。就连一向很少夸人的林静也曾说过郑微不说话的时候还是相当有迷惑性的,称得上“静若处子”。当然,郑微很自觉地过滤掉了他后半句“动若疯兔”的评价,完全当做他对她的肯定。如今想起林静,她的脸上只是微微一笑。
生性豁达的郑薇,埋藏起自己的爱情,开始过上大学时代的忙碌生活。
土木工程的数学题:给定一些没有括号的四则运算表达式,求其结果。
Input
输入数据中含有一些表达式(数量≤1000,长度按含有的运算计,运算符≤30),表达式的运算符只含有加、减、乘、除。表达式中每个数的精度范围在double型内,表达式中没有任何其他运算符,没有括号。
Output
对每个表达式,计算其结果。按科学计数法输出,精度按6位小数,每个结果应占独立一行。如果表达式发生除0的情况,则对该表达式直接输出“DivByZero”。
Sample Input
Sample Output
HINT
输出结果请使用printf("%e\n",ans);或者cout<<scientific<<ans<<endl;
【分析】
#include <iostream>
#include <cstring>
#include <vector>
#include <cstdio>
#include <sstream>
using namespace std;
vector<double>a;
vector<char>f;
int main()
{
string s;
double number;
char c;
while(cin>>s)
{
a.clear();
f.clear();
stringstream st(s);
st>>number;
a.push_back(number);
double ans=0;
while(st>>c>>number)
{
if(c=='*') a.back()*=number;
else
if(c=='/')
{
if(number==0)
{
puts("DivByZero");
goto out;
}
else
a.back()/=number;
}
else
{
f.push_back(c);
a.push_back(number);
}
}
ans=a[0];
for(int i=0;i<f.size();i++)
if(f[i]=='+')
ans+=a[i+1];
else
ans-=a[i+1];
printf("%e\n",ans);
out:;
}
return 0;
}