OpenJudge计算概论-简单算术表达式求值
/*===================================== 简单算术表达式求值 总时间限制: 1000ms 内存限制: 65536kB 描述 2位正整数的简单算术运算(只考虑整数运算),算术运算为: +,加法运算 -,减法运算 *,乘法运算 /,除法运算 %,取余运算。 运算符前后可能有空格. 算术表达式的格式为: 运算数 运算符 运算数 请输出相应的结果。 输入 算术表达式,如: 32+64 输出 整形算数运算的结果(结果值不一定为2位数,可能多于2位或少于2位),例如 96 样例输入 32+64 样例输出 96 ======================================*/
1 #include<stdio.h> 2 int main() 3 { 4 char str[50],c; 5 int a=0,b=0,res,i=0; 6 int flag=1; 7 //freopen("4.in","r",stdin); 8 gets(str); 9 while(str[i]!='\0') 10 { 11 if(str[i]>='0'&&str[i]<='9') 12 { 13 if(flag==1) 14 { 15 a=a*10+str[i]-'0'; 16 } 17 else 18 { 19 b=b*10+str[i]-'0'; 20 } 21 } 22 else if(str[i]!=' ') 23 { 24 c=str[i]; 25 flag++; 26 } 27 i++; 28 } 29 switch(c) 30 { 31 case '+': 32 res=a+b; 33 break; 34 case '-': 35 res=a-b; 36 break; 37 case '*': 38 res=a*b; 39 break; 40 case '/': 41 if(b==0) return 0; 42 res=a/b; 43 break; 44 case '%': 45 if(b==0) return 0; 46 res=a%b; 47 break; 48 } 49 printf("%d\n",res); 50 return 0; 51 }