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]!='')
 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
",res);
49     return 0;
50 }
 
我不怕千万人阻挡,只怕自己投降…
原文地址:https://www.cnblogs.com/geek-007/p/4295473.html