您的位置:首页 > 其它

2006年浙大研究生复试机试真题-简单计算器

2012-04-16 09:33 381 查看
/*
题目描述
读入一个只包含 +, -, *, / 的非负整数计算表达式,计算该表达式的值。
输入
测试输入包含若干测试用例,每个测试用例占一行,每行不超过200个字符,整数和运算符之 间用一个空格分隔。
没有非法表达式。当一行中只有0时输入结束,相应的结果不要输出。
输出
对每个测试用例输出1行,即该表达式的值,精确到小数点后2位。
样例输入
1 + 2
4 + 2 * 5 - 7 / 11
0
样例输出
3.00
13.36
*/
#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{
int flag=0;
char c;
double result=0,m,n;   // 用 float WA
//	freopen("f:/in.txt","r",stdin);
while(scanf("%lf",&m))
{
if(m==0)
break;
while(scanf("%c",&c) && c!='\n')                    //数字和字符轮流读入
{
switch(c)
{
case ' ':
continue;
case '+':
if(flag==0)
result+=m;
else
result-=m;
scanf("%lf",&m);
flag=0;
break;
case '-':
if(flag==0)
result+=m;
else
result-=m;
scanf("%lf",&m);
flag=1;
break;
case '*':
scanf("%lf",&n);
m*=n;
break;
case '/':
scanf("%lf",&n);
m/=n;
break;
default:
break;
}
}
if(flag==0)
result+=m;
else
result-=m;

printf("%.2lf\n",result);
result=0;
flag=0;//清零
}
//	fclose(stdin);
return 0;
}


 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  测试 float c