1397:简单算术表达式求值【题目描述】两位正整数的简单算术运算(只考虑整数运算),算术运算为: +,加法运算; -,减法运算; *,乘法运算; /,整除运算; %,取余运算。 算术表达式的格式为(运算符前后可能有空格): 运算数 运算符 运算数 请输出相应的结果。 【输入】一行算术表达式。 【输出】整型算数运算的结果(结果值不一定为2位数,可能多于2位或少于2位)。 【输入样例】32+64 【输出样例】96 |
教学备忘录:编辑 |
#include<iostream> #include<cmath> char c,tmp[100]; static int i,j; #include<cstring> char max(char m[],int k)//字符转换 为10进制数,因为就是两位的正整数,求出第一个和最后一个。 { i=(m[0]-'0')*10+m[1]-'0'; j=m[k]-'0'+(m[k-1]-'0')*10; for(int t=2;t<k;t++) if(m[t]=='+'||m[t]=='-'||m[t]=='*'||m[t]=='/'||m[t]=='%')//是运算符时返回它 return c=m[t]; } using namespace std; int main() { int k=0,m; while(1) { c=getchar(); if(c==10)break; tmp[k++]=c; } c=max(tmp,k-1); if(c=='+')m=i+j; else if(c=='-')m=i-j; else if(c=='*')m=i*j; else if(c=='/')m=i/j; else if(c=='%')m=i%j; printf("%d",m); return 0; } |