HDU 1.1.1解题报告
来源:互联网 发布:淘宝商店怎么开通花呗 编辑:程序博客网 时间:2024/05/24 06:38
作为整个steps的第一个题,延续了各大OJ的优良传统,是一个最基本的A+B Problem( 别问我怎么知道这个的,各个OJ我只做了A+B OTZ)
但是这个题我竟然没有一次过掉,原因在于,too young too simple,第一次读description没有经验,根本没有读出来题目的意思。
我第一次是这样写的
#include <iostream>
using namespace std;
int main()
{
cin>>a>>b;
cout<<a+b<<endl;
return 0;
}
想的太简单了,读一组数据输出一个和以为就没了。。实际上这个题的本意要求的是不断进行A+B的读入,直到系统不输入值之后才算结束(不光这道题,step中所有的题都是这样)。所以正确的程序应该是这样
#include <iostream>
using namespce std;
int main()
{
int a,b;
while(cin>>a>>b)
cout<<a+b<<endl;
return 0;
}
while(cin>>a>>b)保证了在系统输入终止符Ctrl+Z(是叫这个么?我自己起的)之前,一直在有a和b的读入和a+b的输出,这样才可以accepted。
另附上c语言ac代码
#include <stdio.h>
int main ()
{
int a,b;
while(scanf(“%d%d",&a,&b)!=EOF)
printf("%d\n",a+b)
return 0;
}
这里出现了EOF,它是什么呢?百度上长篇大论的定义我就不贴了,简要说来,在stdio.h下,#define EOF=-1。而在scanf()函数中,如果a和b都被成功读入,那么scanf的返回值就是2;如果只有a被成功读入,返回值为1;如果a和b都未被成功读入,返回值为0;如果遇到错误或遇到end of file,返回值为EOF,且返回值为int型。所以始终有a,b读入时,while循环便可一直进行下去。
本题最大的收获在于,对于c++和c中的数据读入方式有了新的了解。重点就在于while(cin>>a>>b)和while(scanf("%d%d",&a,&b)!=EOF or ==1 or ==2
这两种方式在之后的题中都有重要应用。
- HDU 1.1.1解题报告
- HDU 1.1.2解题报告
- HDU 1.1.3解题报告
- HDU 1.1.4解题报告
- HDU 1.1.5解题报告
- HDU 1.1.6解题报告
- HDU 1.1.7解题报告
- HDU 1.1.8解题报告
- HDU 3342 解题报告
- HDU 3336 解题报告
- HDU 3335 解题报告
- hdu 2516解题报告
- hdu 1004解题报告
- hdu 2139解题报告
- hdu 1019解题报告
- hdu 1064 解题报告
- HDU 1113 解题报告
- hdu 1068 解题报告
- pid、tpid的区别
- linux tcp SACK分析(一)
- github ssh key Key is invalid. Ensure you've copied the file correctly解决办法
- Vericut03_常用功能
- C++复杂对象之堆对象
- HDU 1.1.1解题报告
- C语言记忆化搜索___Play Game(Hdu 4597)
- EF之DBFirst数据库先行
- VC++6.0不能打开文件
- 字符串反转(算法)
- 云课堂-linux内核分析:通过反汇编一个简单的C程序,分析汇编代码理解计算机是如何工作的
- 大三了,该做努力了
- android监听Home键
- 拖延