华为上机练习题--简单加减表达式计算
2015-02-02 09:11
330 查看
题目:
通过键盘输入100以内正整数的加、减运算式,请编写一个程序输出运算结果字符串。
输入字符串的格式为:“操作数1 运算符 操作数2”,“操作数”与“运算符”之间以一个空格隔开。
补充说明:
1、操作数为正整数,不须要考虑计算结果溢出的情况。
2、若输入算式格式错误,输出结果为“0”。
要求实现函数:
void arithmetic(const char *pInputStr, long lInputLen, char *pOutputStr);
【输入】 pInputStr: 输入字符串
lInputLen: 输入字符串长度
【输出】 pOutputStr: 输出字符串,空间已经开辟好,与输入字符串等长;
【注意】仅仅须要完毕该函数功能算法,中间不须要有不论什么IO的输入输出
演示样例
输入:“4 + 7” 输出:“11”
输入:“4 - 7” 输出:“-3”
输入:“9 ++ 7” 输出:“0” 注:格式错误
分析:先切割字符串,分别取得两个操作数和一个运算符, 然后再做一些非法推断, 最后进行运算操作;
代码例如以下:
package com.wenj.test;
/**
*
* @author wenj91-PC
*
*/
public class TestArithmetic {
public static void main(String args[]){
String strIn = "9 ++ 7";
TestArithmetic ta = new TestArithmetic();
System.out.println(ta.arithmetic(strIn));
}
public int arithmetic(String strIn){
String strTemp = strIn;
String[] strArr = strTemp.split(" ");
int a, b;
try{
a = Integer.parseInt(strArr[0]);
b = Integer.parseInt(strArr[2]);
}catch(Exception e){
return 0;
}
String mid = strArr[1];
char[] strC = mid.toCharArray();
if(strC.length > 1){
return 0;
}
switch(strC[0]){
case '+':
return (a+b);
case '-':
return (a-b);
default:
return 0;
}
}
}
通过键盘输入100以内正整数的加、减运算式,请编写一个程序输出运算结果字符串。
输入字符串的格式为:“操作数1 运算符 操作数2”,“操作数”与“运算符”之间以一个空格隔开。
补充说明:
1、操作数为正整数,不须要考虑计算结果溢出的情况。
2、若输入算式格式错误,输出结果为“0”。
要求实现函数:
void arithmetic(const char *pInputStr, long lInputLen, char *pOutputStr);
【输入】 pInputStr: 输入字符串
lInputLen: 输入字符串长度
【输出】 pOutputStr: 输出字符串,空间已经开辟好,与输入字符串等长;
【注意】仅仅须要完毕该函数功能算法,中间不须要有不论什么IO的输入输出
演示样例
输入:“4 + 7” 输出:“11”
输入:“4 - 7” 输出:“-3”
输入:“9 ++ 7” 输出:“0” 注:格式错误
分析:先切割字符串,分别取得两个操作数和一个运算符, 然后再做一些非法推断, 最后进行运算操作;
代码例如以下:
package com.wenj.test;
/**
*
* @author wenj91-PC
*
*/
public class TestArithmetic {
public static void main(String args[]){
String strIn = "9 ++ 7";
TestArithmetic ta = new TestArithmetic();
System.out.println(ta.arithmetic(strIn));
}
public int arithmetic(String strIn){
String strTemp = strIn;
String[] strArr = strTemp.split(" ");
int a, b;
try{
a = Integer.parseInt(strArr[0]);
b = Integer.parseInt(strArr[2]);
}catch(Exception e){
return 0;
}
String mid = strArr[1];
char[] strC = mid.toCharArray();
if(strC.length > 1){
return 0;
}
switch(strC[0]){
case '+':
return (a+b);
case '-':
return (a-b);
default:
return 0;
}
}
}
相关文章推荐
- 华为2013校园招聘上机笔试题-计算整数二进制表达式中0的个数
- 一个计算简单数学表达式值的算法。
- 简单字符串表达式计算方法
- 使用栈计算多项表达式的简单实现--java
- 输入一个只包含个位数字的简单四则运算表达式字符串,计算该表达式的值
- 华为机试题--计算一个表达式的值
- 用正则表达式完成简单公式的替换计算
- 字符串四则运算表达式的计算(华为机试)
- 2013 华为招聘上机第三题 表达式求值
- 简单逆波兰表达式.(华为面试题简版)
- 华为上机练习题
- 极限测试之Matlab和Forcal编译含简单计算的长表达式
- 华为2012校招成都站8:00最后一题,表达式计算源代码
- 【C编程练习】2013华为校园招聘机试题9月10日题2:计算整数二进制表达式中0的个数 最左边1前面的0不考虑 void GenZeroNum(int nVal, int& nZeroNum);
- [各种面试题] 简单表达式计算
- 简单的用堆栈实现的表达式计算
- 最简单的计算器(表达式计算改进)
- Java中使用Socket完成简单的远程计算(含粗糙界面和正则表达式判断数字类型)
- 华为机试:计算一个表达式的值
- Qt实现的简单计算器-计算简单表达式