WOJ1211-表达式的值

该博客探讨如何编程解决计算仅包含加减乘除括号和非负整数的字符串表达式的问题。输入描述包括测试样例数量和每个表达式,输出则为每个表达式的计算结果。示例展示输入和输出格式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如果给你一个只包含+,-,*,/,(,),及非负整数数字和空格组成的字符串表达式,你能编程计算它的值吗?

输入格式

第一行为一个N,表示测试样例数。 以下N行每个样例为一个字符串表达式,每个表达式至少一个字符,可能包含空格,但长度不超过50.

输出格式

对每一测试样例,输出它的值。

样例输入

3
(2+3/3)+1
2+1/2-5
10*(2-2 )

样例输出

4
-3
0


#include<iostream>
#include<string>
#include<stack>
using namespace std;
//进行计算,a@b,其中@是操作符,由c表示,可以是加减乘除,a和b分别是操作数
int calculate(int a,int b,int c) {
	switch(c) {
		case 0:
			return a+b;
		case 1:
			return a-b;
		case 2:
			return a*b;
		case 3:
			return a/b;
	}
}
//进行字符确认,看其是何种操作符号 ,注意针对空格的处理
int certify(char c) {
	switch(c) {
		case ' ':
			return 7;
		case '=':
			return 6;
		case ')':
			return 5;
		case '(':
			return 4;
		case '/':
			return 3;
		case '*':
			return 2;
		case '-':
			return 1;
		case '+':
			return 0;
		default :
			return 8;
	}
}
//在确认了字符不是空格或者操作符号的时候就知道它是数字了,所以进行转换
int gdata(char c) {
	switch(c) {
	
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值