弟弟的做业(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源创计划”,欢迎正在阅读的你也加入,一块儿分享。

相关文章
相关标签/搜索