Openjudge-计算概论(A)-简单算术表达式求值
描述:
两位正整数的简单算术运算(只考虑整数运算),算术运算为:
+,加法运算;
-,减法运算;
*,乘法运算;
/,整除运算;
%,取余运算。
算术表达式的格式为(运算符前后可能有空格):
运算数 运算符 运算数
请输出相应的结果。
输入一行算术表达式。输出整型算数运算的结果(结果值不一定为2位数,可能多于2位或少于2位)。
样例输入
32+64
样例输出
96
思路:使用字符串,从前往后扫,直至结束,把符号提出来,进行运算。
注意:输入时一定要用gets(char)库函数,否则会报错的!
代码如下:
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 gets(str); 8 while(str[i]!='\0') 9 { 10 if(str[i]>='0'&&str[i]<='9') 11 { 12 if(flag==1) 13 { 14 a=a*10+str[i]-'0'; 15 } 16 else 17 { 18 b=b*10+str[i]-'0'; 19 } 20 } 21 else if(str[i]!=' ') 22 { 23 c=str[i]; 24 flag++; 25 } 26 i++; 27 } 28 switch(c) 29 { 30 case '+': 31 res=a+b; 32 break; 33 case '-': 34 res=a-b; 35 break; 36 case '*': 37 res=a*b; 38 break; 39 case '/': 40 if(b==0) return 0; 41 res=a/b; 42 break; 43 case '%': 44 if(b==0) return 0; 45 res=a%b; 46 break; 47 } 48 printf("%d\n",res); 49 return 0; 50 }
我不怕千万人阻挡,只怕自己投降…