簡單算數表達式求值


今天看到了這樣的一道關於函數的特別特別簡單的題

兩位正整數的簡單算術運算(只考慮整數運算),算術運算為: +,加法運算; -,減法運算; *,乘法運算; /,整除運算; %,取余運算

算術表達式的格式為(運算符前后可能有空格): 運算數 運算符 運算數

請輸出相應的結果

輸入:一行算術表達式

輸出:整型算數運算的結果(結果值不一定為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 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM