算法训练 前缀表达式
来源:互联网 发布:python正则匹配 编辑:程序博客网 时间:2024/06/03 06:44
问题描述
编写一个程序,以字符串方式输入一个前缀表达式,然后计算它的值。输入格式为:“运算符 对象1 对象2”,其中,运算符为“+”(加法)、“-”(减法)、“*”(乘法)或“/”(除法),运算对象为不超过10的整数,它们之间用一个空格隔开。要求:对于加、减、乘、除这四种运算,分别设计相应的函数来实现。
输入格式:输入只有一行,即一个前缀表达式字符串。
输出格式:输出相应的计算结果(如果是除法,直接采用c语言的“/”运算符,结果为整数)。
输入输出样例
样例输入
+ 5 2
样例输出
编写一个程序,以字符串方式输入一个前缀表达式,然后计算它的值。输入格式为:“运算符 对象1 对象2”,其中,运算符为“+”(加法)、“-”(减法)、“*”(乘法)或“/”(除法),运算对象为不超过10的整数,它们之间用一个空格隔开。要求:对于加、减、乘、除这四种运算,分别设计相应的函数来实现。
输入格式:输入只有一行,即一个前缀表达式字符串。
输出格式:输出相应的计算结果(如果是除法,直接采用c语言的“/”运算符,结果为整数)。
输入输出样例
样例输入
+ 5 2
样例输出
7
实现代码:
#include<iostream>#include<cstring>using namespace std;int ff( char ch , int x , int y){ if(ch == '+') return x + y ;else if(ch == '-') return x - y ;else if(ch == '*') return (x) * (y) ;else if(ch == '/') { if( y ) // 如果除数不为零则进行下面的运算 return (x) / (y) ; }}int main(){int m , n ,t;string s_char ;while(getline( cin , s_char )) //使用 getline来使输入的字符串含有空格 {//表示前一个运算对象是 10 if(s_char[3] == '0' ){ if(s_char[6] == '0') //后一个对象是 10 cout << ff(s_char[0] , 10 , 10 ) << endl ; else if(s_char[6] == '\0') //后一个运算对象小于 10 { cout << ff(s_char[0] , 10 , s_char[5] - '0' ) << endl ; } } else if(s_char[3] == ' ')//表示前一个运算对象小于 10 { if(s_char[5] == '0') //后一个运算对象为 10 cout<<ff(s_char[0] , s_char[2] , 10 ) << endl ; else if(s_char[5] == '\0') //后一个运算对象小于 10 cout<<ff(s_char[0] , s_char[2] - '0' , s_char[4] - '0') << endl ; }}return 0;}
0 0
- 算法训练 前缀表达式
- 算法训练 前缀表达式
- 算法训练 前缀表达式
- 算法训练 前缀表达式
- 算法训练 前缀表达式
- 算法训练 前缀表达式
- 算法训练 前缀表达式
- 算法训练 前缀表达式
- 算法训练 前缀表达式
- 算法训练 前缀表达式
- 算法训练 前缀表达式
- 算法训练 前缀表达式
- 算法训练 前缀表达式
- 蓝桥杯 算法训练 前缀表达式
- 蓝桥杯 算法训练 前缀表达式
- 蓝桥杯 算法训练 前缀表达式
- 1501080945-蓝桥杯-算法训练 前缀表达式
- 算法训练 前缀表达式(蓝桥杯)
- Java运行错误:Exception in thread "main" java.lang.NoClassDefFoundError
- 世纪末的星期
- freemarker 常用的基本命令
- MongoDb-1.0 CRUD基本概念
- 18个最热深度学习Github项目逐一介绍
- 算法训练 前缀表达式
- 知名技术公司整理
- matlab命令
- String,StrinngBuffer,BufferBuilder
- SPFA算法文字简介
- 【C语言】分解质因数
- 怎样用UltraISO制作U盘系统安装盘
- gdb调试
- Java随笔