本文主要是介绍简单加减运算,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目描述(50分):
通过键盘输入100以内正整数的加、减运算式,请编写一个程序输出运算结果字符串。
输入字符串的格式为:“操作数1 运算符操作数2”,“操作数”与“运算符”之间以一个空格隔开。
补充说明:
1 操作数为正整数,不需要考虑计算结果溢出的情况;
2 若输入算式格式错误,输出结果为“0”。
要求实现函数: voidarithmetic(const char *pInputStr, long lInputLen, char *pOutputStr);
输入: pInputStr: 输入字符串
lInputLen: 输入字符串长度
输出: pOutputStr: 输出字符串,空间已经开辟好,与输入字符串等长;
注意:只需要完成该函数功能算法,中间不需要有任何IO的输入输出
示例:
输入:“4 + 7” 输出:“11”
输入:“4 - 7” 输出:“-3”
输入:“9 ++ 7” 输出:“0”注:格式错误
代码:
#include <iostream>
#define N 10
using namespace std;
void arithmetic(const char* pInputStr, long lInputLen, char* pOutputStr)
{int flag;int i = 0,j;int num1 = 0, num2 = 0;while (pInputStr[i]!=' '){i++;}for (j = 0; j < i; j++){num1 = num1 * 10 + (pInputStr[j] - '0');}i++;if (pInputStr[i] == '+'){flag = 1;}else if (pInputStr[i] == '-'){flag = 0;}if (pInputStr[++i] != ' '){pOutputStr[0] = 0 + '0';pOutputStr[1] = '\0';return;}while (pInputStr[++i] != '\0'){num2 = num2 * 10 + (pInputStr[i] - '0');}int num;if (flag){num = num1 + num2;}elsenum = num1 - num2;if (num < 0){num = -num;*pOutputStr = '-';++pOutputStr;while (num>0){*pOutputStr = num % 10 + '0';pOutputStr++;num /= 10;}}else if (num == 0){pOutputStr[0] = 0 + '0';pOutputStr[1] = '\0';}else{while (num>0){*pOutputStr = num % 10 + '0';pOutputStr++;num /= 10;}}*pOutputStr = '\0';
}
int main()
{char* pch1 = "4 + 7";int len1 = strlen(pch1);char result1[N];arithmetic(pch1, len1, result1);cout << result1 << endl;char* pch2 = "4 - 7";int len2 = strlen(pch2);char result2[N];arithmetic(pch2, len2, result2);cout << result2 << endl;char* pch3 = "4 ++ 7";int len3 = strlen(pch3);char result3[N];arithmetic(pch3, len3, result3);cout << result3 << endl;cin.get();return 0;
}
这篇关于简单加减运算的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!