时间限制: 1 s
空间限制: 1000 KB
题目等级 : 白银 Silver
题目描述 Description
zbd想要一个计算器,请你编一个计算器。
输入描述 Input Description
输入只有一行,是一个完整的计算表达式,表达式中无空格等分隔符。表达式中,用操作符(+、-、*、/)来分隔两个非负整数。请输出运算的结果。
输出描述 Output Description
输出也只有一行。为运算的结果。如果除法出现小数,请保两位小数输出。如出现除零错误,请输出“ERROR!”
样例输入 Sample Input
1+2
样例输出 Sample Output
3
数据范围及提示 Data Size & Hint
无
#include <cstring> #include <cstdio> char ss,str[1001]; int a,b; int main() { scanf("%s",str); int l=strlen(str); int i=0; while(str[i]>='0'&&str[i]<='9') { a=a*10+(int)str[i]-48; i++; } ss=str[i++]; while(str[i]>='0'&&str[i]<='9') { b=b*10+(int)str[i]-48; i++; } if(ss=='/'&&b==0) { printf("ERROR!"); return 0; } switch(ss) { case '+': { printf("%d",a+b); break; } case '-': { printf("%d",a-b); break; } case '*': { printf("%d",a*b); break; } case '/': { if(b!=0&&a%b==0) printf("%d",a/b); else if(b!=0) printf("%.2lf",a*1.0/b); break; } } }