zoukankan      html  css  js  c++  java
  • 湖南省第6届程序大赛第二题 弟弟的作业

    题目B

    弟弟的作业

    你的弟弟刚做完了“100以内数的加减法”这部分的作业,请你帮他检查一下。每道题目(包括弟弟的答案)的格式为a+b=c或者a-b=c,其中ab是作业中给出的,均为不超过100的非负整数;c是弟弟算出的答案,可能是不超过200的非负整数,也可能是单个字符"?",表示他不会算。

    输入

    输入文件包含不超过100行,以文件结束符结尾。每行包含一道题目,格式保证符合上述规定,且不包含任何空白字符。输入的所有整数均不含前导0。

    输出

    输出仅一行,包含一个非负整数,即弟弟答对的题目数量。

    样例输入

    样例输出

    1+2=3

    3-1=5

    6+7=?

    99-0=99

    2

     这一道题目唯一可能难到人的就是数据的输入,它可能是数字可能是‘?’。但是只要你学会了使用sscanf函数,这道题目就是几行代码的事情。我在这稍微解释一下:

     sscanf()会将参数str的字符串根据参数format字符串来转换并格式化数据。格式转换形式请参考scanf()。转换后的结果存于对应的参数内。

    它的返回值   如果转化成功则返回参数数目,失败则返回-1,错误原因存于errno中。 返回0表示失败     否则,表示正确格式化数据的个数    例如:sscanf(ch, "%d+%d=%d", &a, &b, &c);    如果三个变成都读入成功会返回3。 如果只读入了第一个整数则会返回1。证明无法从ch读入第二个整数。  

     1 #include <iostream>
     2 #include <stdio.h>
     3 using namespace std;
     4 char ch[50];
     5 int main()
     6 {
     7     int a,b,c,n=0;
     8     while(scanf("%s",ch)==1)
     9     {
    10         if(sscanf(ch,"%d+%d=%d",&a,&b,&c)==3&&a+b==c)n++;
    11         if(sscanf(ch,"%d-%d=%d",&a,&b,&c)==3&&a-b==c)n++;
    12     }
    13     printf("%d
    ",n);
    14     return 0;
    15 }
  • 相关阅读:
    并发编程 之 生产者消费者模型
    并发编程 之 IPC机制
    Django + DRF + Elasticsearch 实现搜索功能
    时间上相邻query,前缀去重
    列表套字典,将字典元素去重
    K8s
    docker
    数据处理
    Django日志配配置
    Canvas 获取颜色值
  • 原文地址:https://www.cnblogs.com/52why/p/5840646.html
Copyright © 2011-2022 走看看