博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
湖南省第6届程序大赛第二题 弟弟的作业
阅读量:6276 次
发布时间:2019-06-22

本文共 990 字,大约阅读时间需要 3 分钟。

题目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 
2 #include
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",n);14 return 0;15 }

 

转载于:https://www.cnblogs.com/52why/p/5840646.html

你可能感兴趣的文章
数学公式的英语读法
查看>>
留德十年
查看>>
迷人的卡耐基说话术
查看>>
PHP导出table为xls出现乱码解决方法
查看>>
PHP问题 —— 丢失SESSION
查看>>
Java中Object类的equals()和hashCode()方法深入解析
查看>>
数据库
查看>>
Vue------第二天(计算属性、侦听器、绑定Class、绑定Style)
查看>>
dojo.mixin(混合进)、dojo.extend、dojo.declare
查看>>
Python 数据类型
查看>>
iOS--环信集成并修改头像和昵称(需要自己的服务器)
查看>>
PHP版微信权限验证配置,音频文件下载,FFmpeg转码,上传OSS和删除转存服务器本地文件...
查看>>
教程前言 - 回归宣言
查看>>
PHP 7.1是否支持操作符重载?
查看>>
Vue.js 中v-for和v-if一起使用,来判断select中的option为选中项
查看>>
Java中AES加密解密以及签名校验
查看>>
定义内部类 继承 AsyncTask 来实现异步网络请求
查看>>
VC中怎么读取.txt文件
查看>>
如何清理mac系统垃圾
查看>>
企业中最佳虚拟机软件应用程序—Parallels Deskto
查看>>