今天看到了这样的一道关于函数的特别特别简单的题
两位正整数的简单算术运算(只考虑整数运算),算术运算为: +,加法运算; -,减法运算; *,乘法运算; /,整除运算; %,取余运算
算术表达式的格式为(运算符前后可能有空格): 运算数 运算符 运算数
请输出相应的结果
输入:一行算术表达式
输出:整型算数运算的结果(结果值不一定为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 }