当前位置: 代码迷 >> 综合 >> 1397:简单算术表达式求值
  详细解决方案

1397:简单算术表达式求值

热度:44   发布时间:2024-02-09 12:37:00.0

【题目描述】

两位正整数的简单算术运算(只考虑整数运算),算术运算为:

+,加法运算;

-,减法运算;

*,乘法运算;

/,整除运算;

%,取余运算。

算术表达式的格式为(运算符前后可能有空格):

运算数 运算符 运算数

请输出相应的结果。带我去看题目

【输入】

一行算术表达式。

【输出】

整型算数运算的结果(结果值不一定为2位数,可能多于2位或少于2位)。

【输入样例】

32+64

【输出样例】

96

【通过代码】

#include <bits/stdc++.h>
using namespace std;
char str[1001],a[1001],b[1001],s;
bool isNum(char _s){return _s >= '0' && _s <= '9';
}
bool isOpr(char _s){return _s == '+' || _s == '-' || _s == '*' || _s == '/' || _s == '%';
}
int toInt(char _str[]){int Int = 0;for(int i = 0;i < strlen(_str);i ++)Int = Int * 10 + _str[i] - '0';return Int;
}
int main(){gets(str);bool enter_opr = false;for(int i = 0;i < strlen(str);i ++)if(isNum(str[i])){if(enter_opr == false)a[strlen(a)] = str[i];elseb[strlen(b)] = str[i];}else if(isOpr(str[i]))s = str[i],enter_opr = true;int ans,_a = toInt(a),_b = toInt(b);switch(s){case ('+'):ans = _a + _b;break;case ('-'):ans = _a - _b;break;case ('*'):ans = _a * _b;break;case ('/'):ans = _a / _b;break;case ('%'):ans = _a % _b;break;}printf("%d",ans);return 0;
}