博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
杭电ACM 1000:A+B Problem
阅读量:2255 次
发布时间:2019-05-09

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

本文章是杭电ACM在线刷题记录第一篇,刷题主要是为了提高自己的编程能力和快速应答能力。学习没有理由,只是想让自己变得更优秀。

原题回顾

Problem Description

Calculate A + B

Input

Each line will contain two integers A and B. Process to end of file.

Output

For each case, output A + B in one line.

Sample Input

1 1

Sample Output

2

这题看似是非常简单的,凡是学过c语言的人基本都能写出相应的意思,但是在在线系统上要完全正确的提交上自己的代码,还是有点难度的,下面我们就来看看几种常见的错误。

NO.1 错误点一

大家很容易写出如下类似普遍错误的代码:

#include 
int main(void){ int a,b; scanf("%d%d",&a,&b); printf("%d\n",a+b); return 0;}

当你信心满满的将上述代码提交之后发现结果是wrong answer,什么原因呢?那就怪自己看题太粗心,再看看我们题目描述“For each case”,貌似自己的代码没有这个功能体现吧,在这里不只是一个测试用例,而是很多个,怎么体现可以使用很多个用例呢?当然是循环了,必须将输入输出语句用循环括起来。然后再把改过后的代码进行提交,发现结果是另一种报错“Output Limit Exceeded ”,看吧,有没有崩溃的感觉,这么简单的一道题竟然弄了几次还不对,顿时感觉自己弱爆了吧。下面正是我们的另一个错误。

NO.2 错误点二

当你还为自己的错在哪里一头雾水沉思的时候,最好的办法就是回到原题要求,看看自己还漏下什么没有体现的。当你看到“ Process to end of file.”这一句的时候恍然大悟了吧,这一句是什么意思呢?他的意思就是就是处理到文件的结束,这道题的意思就是读一个文件,把每一行的两个数字加起来,然后打印出来,直到文件末尾。这个我们就需要从scanf函数的定义说起。函数 scanf() 是从标准输入流stdio (标准输入设备,一般是键盘)中读内容的通用子程序,可以说明的格式读入多个字符,并保存在对应地址的变量中。

其调用形式为:
scanf(“<格式说明字符串>”,<变量地址>);
变量地址要求有效,并且与格式说明的次序一致。scanf()函数返回成功赋值的数据项数,读到文件末尾出错时则返回EOF。例如:

scanf("%d %d",&a,&b);
  • 如果a和b都被成功读入,那么scanf的返回值就是2
  • 如果只有a被成功读入,返回值为1
  • 如果a和b都未被成功读入,返回值为0
  • 如果遇到错误或遇到end of file,返回值为EOF。
    且返回值为int型.

所以我们的代码中在读取流的时候必须有EOF判断,EOF其实是一个宏,他的值为-1。

好了,这是这道题常见的两种错误,做错了不要紧,积累经验,将知识慢慢捡起来你就成功了。正确的代码如下:

#include 
int main(void){ int a,b; while(scanf("%d%d",&a,&b)!=EOF) { printf("%d\n",a+b); } return 0;}

当你看到结果是Accept,一种自豪感油然而生。

转载地址:http://uxrdb.baihongyu.com/

你可能感兴趣的文章
[吃药深度学习随笔] 交叉熵
查看>>
[BootStrap学习随笔] 起步、布局容器和栅格式布局
查看>>
安装Android开发环境随笔
查看>>
[BootStrap学习随笔] 表单 按钮
查看>>
[BootStrap学习随笔] 排版 代码 表格
查看>>
个人对TCP11种状态转换的理解
查看>>
[BootStrap学习随笔] 图片 辅助类
查看>>
[吃药深度学习随笔] 练习:训练二次方程的参数
查看>>
在Eclipse中查看JDK源码
查看>>
让BoxLayout管理器尊重JTextField的实际尺寸
查看>>
访问打包在Jar文件中的图片资源
查看>>
产生不等概率随机数的简单方法
查看>>
Minotaur——人身牛头怪的传说
查看>>
使用Action创建一个JButton后,改变该按钮的名字可能会遇到意想不到的问题
查看>>
在Eclipse中使用JUnit4进行单元测试(初级篇)
查看>>
在Eclipse中使用JUnit4进行单元测试(中级篇)
查看>>
在Eclipse中使用JUnit4进行单元测试(高级篇)
查看>>
通过JAVA的Serialization机制进行对象的拷贝
查看>>
对Struts的资源文件进行汉化的便捷方法
查看>>
Tomcat5.5中文完美解决方案
查看>>