NYOJ 128 前缀式求值

原创 2012年03月22日 08:09:57

题目链接:http://acm.nyist.edu.cn/JudgeOnline/problem.php?pid=128

需要理解递归的过程,中间的读取字符串%n可以获得已读取的位数,参考代码:

 
#include<iostream>
#include<cstring>
#include<string>
#include<cstdio>
using namespace std;

char str[2000];
int pos,len;
double ope()
{
	double val = 0;
	int n;
	switch(str[pos])
	{
	case '+':pos += 1;return ope() + ope();
	case '-':pos += 1;return ope() - ope();
	case '*':pos += 1;return ope() * ope();
	case '/':pos += 1;return ope() / ope();
	case ' ':pos++;return ope();
	default:
		sscanf(&str[pos],"%lf%n",&val,&n);
		pos += n;return val;
	}
}

int main()
{
	while(gets(str))
	{
		pos = 0; len = strlen(str);
		printf("%.2lf\n",ope());
		memset(str,0,sizeof(str));
	}
	return 0;
}        


相关文章推荐

nyoj128 前缀式求值(栈---递归---数据结构)

前缀式计算 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述 先说明一下什么是中缀式: 如2+(3+4)*5这种我们最常见的式子就是中...

NYOJ128 前缀式计算 【栈】

前缀式计算 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述 先说明一下什么是中缀式: 如2+(3+4)*5这种我们最常见的式子就是中缀式...

nyoj128 前缀式计算 (strtok分割字符串+递归)

题目128 题目信息 运行结果 本题排行 讨论区 前缀式计算 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述 ...

nyoj 题目128 前缀式计算

前缀式计算 时间限制:1000 ms  |            内存限制:65535 KB 难度:3 描述 先说明一下什么是中缀式: 如2+(3+4)*5这种我们最常见的式子就是...

nyoj 128 前缀式计算

描述 先说明一下什么是中缀式: 如2+(3+4)*5这种我们最常见的式子就是中缀式。 而把中缀式按运算顺序加上括号就是:(2+((3+4)*5)) 然后把运算符写到括号前面就是+(2 *( +...

NYOJ 128 前缀式计算

NYOJ 128 前缀式计算

NYOJ 128 前缀式计算【栈】

前缀式计算 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述 先说明一下什么是中缀式: 如2+(3+4)*5这种我们最常见的式子就是中...
  • wyjwyl
  • wyjwyl
  • 2016年07月19日 14:48
  • 134

NYOJ 128 前缀式计算

前缀式计算 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述 先说明一下什么是中缀式: 如2+(3+4)*5这种我们最常见的式子就是中缀式。 而把中缀式按运算顺...

NYOJ-128-前缀式计算

前缀式计算 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描述 先说明一下什么是中缀式:如2+(3+4)*5这种我们最常见的式子就是中缀式。而把中缀式按运算顺序加上括...

nyoj 128前缀式计算 【数据结构&&队列】

前缀式计算 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述 先说明一下什么是中缀式: 如2+(3+4)*5这种我们最常见的式子就是中缀式。 而把中缀...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:NYOJ 128 前缀式求值
举报原因:
原因补充:

(最多只允许输入30个字)