弟弟的做業(OI賽題)

點擊上方藍字,記得關注咱們!



無一分可增不叫完美,無一分可減纔是。--Antoine de Saint-Exuperyweb

弟弟的做業微信


1.題目描述

你的弟弟剛作完了「100之內數的加減法這部分的做業,請你幫他檢查一下。每道題目(包括弟弟的答案)的格式爲a+b=c或者a-b=c,其中ab是做業中給出的,均爲不超過100的非負整數;c是弟弟算出的答案,多是不超過200的非負整數,也多是單個字符"?",表示他不會算。編輯器



2.格式與樣例

輸入flex

輸入文件包含不超過100行,以文件結束符結尾。每行包含一道題目,格式保證符合上述規定,且不包含任何空白字符。輸入的全部整數均不含前導0url


輸出spa

輸出僅一行,包含一個非負整數,即弟弟答對的題目數量。.net


樣例輸入3d

1+2=3code

3-1=5orm

6+7=?

99-0=99

樣例輸出

2



3.參考答案
 1#include<stdio.h>  
2#include<string.h>  //包含strlen()
3int main()  
4
{  
5    int a,b,d,sum=0,i,len; 
6    //其中a爲第一個數,b爲第二個數
7    //d爲a與b運算正確的數,len爲最後弟弟輸入的數的長度
8    char c,s[10];  
9    //其中c爲預算符,s爲弟弟輸入的結果
10    while(scanf("%d%c%d=%s",&a,&c,&b,s)!=EOF)  
11        //回車也不會結束,但ctrl+z能夠讓scanf()返回EOF
12        //運行時到結束的時候按ctrl+z便可
13    {  
14        d=0;  //初始化d很關鍵
15        len=strlen(s);  
16//strlen()得弟弟輸入的結果的長度,用到後面將字符轉化爲數裏面
17        if(s[0]!='?')  //若是是問號就直接跳過了
18        {  
19            for(i=0;i<len;i++)  
20            {  
21                d=d*10+s[i]-'0';  
22            }  
23            if(c=='+')  
24            {  
25                if(a+b==d)  
26                    sum++;  
27            }  
28            else if(c=='-')  
29            {  
30                if(a-b==d)  
31                    sum++;  
32            }  
33        }  
34    }  
35    printf("%d\n",sum);  
36    return 0;  
37}




END

「If you torture the data enough, it will confess」

                                           - - Ronald Coase


「閱讀原文」咱們一塊兒進步



本文分享自微信公衆號 - 電子榮耀(gh_05453579ed9d)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。

相關文章
相關標籤/搜索