简单算数表达式求值

今天看到了这样的一道关于函数的特别特别简单的题

两位正整数的简单算术运算(只考虑整数运算),算术运算为: +,加法运算; -,减法运算; *,乘法运算; /,整除运算; %,取余运算

算术表达式的格式为(运算符前后可能有空格): 运算数 运算符 运算数

请输出相应的结果

输入:一行算术表达式

输出:整型算数运算的结果(结果值不一定为2位数,可能多于2位或少于2位)

样例输入: 32+64

样例输出: 96

好吧,现在估计看到这里的人已经不多了。确实,这是一道非常简单的题,但是这道题里却藏着一个巨大的坑,那就是:

(运算符前后可能有空格)

。。。

由于字符可以读入空格,因此在scanf输入时%d%c%d中间应用空格隔开

很好很好。。。

最后希望读者注意这个坑点,减少细节上的错误

附加本题代码(写的不好,勿喷)

 1 #include<cstdio>
 2 using namespace std;
 3 void jiafa(int x,int y)
 4 {
 5     printf("%d",x+y);
 6 }
 7 void jianfa(int x,int y)
 8 {
 9     printf("%d",x-y);
10 }
11 void chengfa(int x,int y)
12 {
13     printf("%d",x*y);
14 }
15 void chufa(int x,int y)
16 {
17     printf("%d",x/y);
18 }
19 void quyu(int x,int y)
20 {
21     printf("%d",x%y);
22 }
23 int main()
24 {
25     int a,c;
26     char b;
27     scanf("%d %c %d",&a,&b,&c);
28     if(b=='+')
29     {
30         jiafa(a,c);
31     }
32     else if(b=='-')
33     {
34         jianfa(a,c);
35     }
36     else if(b=='*')
37     {
38         chengfa(a,c);
39     }
40     else if(b=='/')
41     {
42         chufa(a,c);
43     }
44     else if(b=='%')
45     {
46         quyu(a,c);
47     }
48     return 0;
49 }
原文地址:https://www.cnblogs.com/yufenglin/p/9971535.html