今天看到了這樣的一道關於函數的特別特別簡單的題
兩位正整數的簡單算術運算(只考慮整數運算),算術運算為: +,加法運算; -,減法運算; *,乘法運算; /,整除運算; %,取余運算
算術表達式的格式為(運算符前后可能有空格): 運算數 運算符 運算數
請輸出相應的結果
輸入:一行算術表達式
輸出:整型算數運算的結果(結果值不一定為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 }