关闭

http://acm.nyist.net/JudgeOnline/problem.php?pid=128&&前缀式计算

339人阅读 评论(0) 收藏 举报
#include<iostream>
#include<cstdio>
using namespace std;
int pos;
char str[500];
double pre_calucate()
{ 
	pos++; 
	if(str[pos]==' ') pos++;
	if(str[pos]>='0'&&str[pos]<='9')
	{
		int len;
		double temp;
		sscanf(&str[pos],"%lf%n",&temp,&len);
		pos+=len-1;
		return temp;
	}
	if(str[pos]=='+') return pre_calucate()+pre_calucate();
	if(str[pos]=='-') return pre_calucate()-pre_calucate();
	if(str[pos]=='*') return pre_calucate()*pre_calucate();
	if(str[pos]=='/') return pre_calucate()/pre_calucate();
}
int main()
{
	while(gets(str))
	{ pos=-1;
	  printf("%.2f\n",pre_calucate());
	} return 0;
}

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:376615次
    • 积分:7882
    • 等级:
    • 排名:第2719名
    • 原创:426篇
    • 转载:6篇
    • 译文:1篇
    • 评论:18条
    最新评论