今天第一次接触杭电OJ,感觉很新奇有趣。希望从今天开始其乐无穷的刷题之路吧

1000题:

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

答案:

#include <stdio.h>

int main(void)
{
    int a, b;
    while(scanf("%d%d", &a, &b) == 2) //最开始没有添加参数返回值判断
    printf("%d\n", a+b);
    return 0;
}

关于scanf的返回值知识:

1. scanf 函数是有返回值的,它的返回值可以分成三种情况
  1) 正整数,表示正确输入参数的个数。例如执行 scanf("%d %d", &a, &b);
      如果用户输入"3 4",可以正确输入,返回2(正确输入了两个变量);
      如果用户输入"3,4",可以正确输入a,无法输入b,返回1(正确输入了一个变量)。
  2) 0,表示用户的输入不匹配,无法正确输入任何值。如上例,用户如果输入",3 4",返回0。
  3) EOF,这是在stdio.h里面定义的常量(通常值为-1),表示输入流已经结束。在Windows下,用户按下CTRL+Z(会看到一个^Z字符)再按下回车(可能需要重复2次),就表示输入结束;Linux/Unix下使用CTRL+D表示输入结束。

scanf的返回值由后面的参数决定scanf("%d%d", &a, &b);如果a和b都被成功读入,那么scanf的返回值就是2如果只有a被成功读入,返回值为1如果a和b都未被成功读入,返回值为0如果遇到错误或遇到end of file,返回值为EOF。且返回值为int型.
输入1, a
第一个%d, 从缓冲区读入1, 赋值给a;
第二个%d, 从缓冲区读入'a',不匹配,scanf返回。
成功读入一个数据,scanf返回值是1。
--------------------------------------------------
输入a, 1
第一个%d, 从缓冲区读入'a', 不匹配,'a'在缓冲区保留;
第二个%d, 从缓冲区读入'a',不匹配,scanf返回。
成功读入0个数据,scanf返回值是0。

题目1001:

Problem Description
Hey, welcome to HDOJ(Hangzhou Dianzi University Online Judge).

In this problem, your task is to calculate SUM(n) = 1 + 2 + 3 + ... + n.

Input
The input will consist of a series of integers n, one integer per line.
Output
For each case, output SUM(n) in one line, followed by a blank line. You may assume the result will be in the range of 32-bit signed integer.
Sample Input
1 100
Sample Output
15050
AC答案:
#include<stdio.h> int main() { long int a, i, sum; while(scanf("%d", &a) != EOF) { sum = 0; for(i = 1; i<=a; i++) { sum += i; } printf("%d\n\n",sum); } return 0; }
这个题的描述似乎是有问题的,因为提交的答案中每次输入一个n值时,按回车键换行时,输出结果会被立刻打印出来,而无法像问题显示那样能够一次输入2个n值。
当while条件为while(scanf("%d", &a) != EOF)时,当输入一个字母时,程序会一直打印上一次的sum值,只能强行关闭退出。当改为while(scanf("%d", &a) == 1)便不会出现这个问题,分析原因可知:scanf是一种“模式匹配”函数,它总是试图把输入的字符组或数据流与其双括号内的转换格式符类型%d(或%d、%f、%c等)相匹配,并且在寻找匹配起始位置时,它会忽略空白字符(包括空格、回车、tab等),起始位置匹配成功后继续向后查找,直到遇到遇到不可能属于此格式类型%d的字符时停止,以确定终止位置,然后将起始和终止位置之间的字符串赋给相应的变量。匹配成功后继续进行下一轮匹配,如果输入字符与下一个格式类型无法正确匹配,则scanf忽略后续格式串中的格式类型,并退出,并且将不匹配字符放回到“原处”,即放回到输入数据流中,等待下一次调用scanf函数时来读取。
当while(scanf("%d", &a) != EOF),输入为整数时,scanf读取成功后返回1,while为真,当为字母时,scanf无法成功读取,将字母字符放回到输入流,返回0,while为真,变量a依然保持上一次成功读入后的值。由于输入流中有数据,则while(scanf("%d", &a) != EOF)会一直被调用,并每次均读取失败返回0,并将字母放回到输入流中,于是屏幕便一直打印输出上次的sum值。此时继续用键盘输入整数值也依然不会改变程序状态。

杭电OJ——第1000,1001题相关推荐

  1. JAVA爬虫练习~通过杭电oj账号查询做题数

    1 首先我们来看一下 效果: 通过查找我们得到 了AC做题数 , 我们爬取HTML代码 , 通过自己的逻辑 筛选 所需要的信息 接下来是代码: package day_1;import java.io ...

  2. 杭电oj第1000题—— A + B Problem

    题述如下: Problem Description Calculate A + B.Input Each line will contain two integers A and B. Process ...

  3. 杭电OJ(HDOJ)入门题目列表

    杭电OJ链接: http://acm.hdu.edu.cn/ 注册与使用指南: https://blog.csdn.net/qq_38769551/article/details/101510000 ...

  4. 杭电oj1620题c语言答案,杭电oj部分水题 c语言源代码.doc

    杭电oj部分水题 c语言源代码 殿剐忱酪短祭幂曝沈脸蛀蓑挞姻扶宠秤蓄幌榆矾巨旷于渍弯史影得熄孟椒菊葫彦籍蛛绊趣庙捣载睹答赊索添垛蝎伙生瞎回悟辅篇狱辗歧病氯急迸怜煽跋屋凡逻甲确烧迟卞姻郸被康少辊蒂刽厂礁 ...

  5. 杭电OJ第11页2085~2089算法题(C语言)

    目录 2085.核反应堆 2086.A1 = ? 2087.剪花布条 2088.Box of Bricks 2089.不要62 2085.核反应堆 Problem Description 某核反应堆有 ...

  6. 赛马网ACM试题(原杭电oj ACM)java版答案(1000,10001,1002)

    赛马网ACM试题(原杭电OJ ACM试题)答案(java版) Author : Zhang Hailong   Date   : 2015-09-17    HomePage : http://  E ...

  7. 杭电oj ——1000 A+B问题

    目录 杭电oj使用介绍: 1000  A+B问题 方法一:主函数直接求和 方法二:定义一个ADD函数求和 杭电oj使用介绍: 从今天开始推出新专栏--杭电oj 题库啦.首先附上杭电oj的链接 acm. ...

  8. 地下城夺宝游戏——杭电OJ 1044题解析

    题目来源:杭电OJ-1044 题目大意:一个探险家身处一个危险的地下城,城中很危险,并且城中分散着若干个珠宝:现在地下城即将塌陷,冒险家需要在有限的时间内逃出去,但他希望在逃生的过程中获取一些珠宝并使 ...

  9. 杭电OJ第11页2035~2039算法题(C语言)

    目录 2035.人见人爱A^B 2036.改革春风吹满地 2037.今年暑假不AC 2038.Message 2039.三角形 2035.人见人爱A^B Problem Description 求A^ ...

最新文章

  1. 为什么颜值越来越重要_看脸时代来了吗?为什么这个时代越来越注重颜值?
  2. 笔记本电脑处理器_苹果高管:我们都没有想到M1的性能有那么强|英特尔|处理器|iphone|ipad|笔记本电脑...
  3. 量子技术新突破!科学家完美实现将单个原子逐一嵌入硅晶片
  4. Maven 概要介绍
  5. 再谈新浪微博架构——视频观后笔记
  6. sh256sum、xxd、base64联合计算文件的hash
  7. 使用python 的paramiko制作堡垒机
  8. CodeForces - 434D Nanami's Power Plant
  9. 机器学习(四) 下采样和上采样
  10. 中芯国际科创板IPO最新招股意向书:7月7日网上申购
  11. 《Win测试的学习笔记》——Introduction
  12. Codeforces Round #573 (Div. 2) C. Tokitsukaze and Discard Items
  13. 数仓建模—事实表和维度表设计规范
  14. mybatis根据日期范围查询,多参数查询
  15. 反虚拟机、反沙箱技术整理汇总
  16. 加菲猫经典语录(二十二条,中英文对照)
  17. C++核心准则边译边学-I.6 表达前提条件最好使用Expects()
  18. 分享两个在线制图网站
  19. 10个超棒的界面设计工具
  20. JAVA操作properties配置文件

热门文章

  1. JDK与JER的区别
  2. 8. spark学习之旅(二)
  3. mysql in 命中索引_MySql优化-你的SQL命中索引了吗
  4. 加密网站地址——从根本解决盗连
  5. 擦边上100分,我的托福考试总结
  6. 超多趣味测评测试微信小程序源码 可插入流量主广告位
  7. c语言中a-这个作用是什么,c语言中a*=y什么意思?
  8. 华硕ASUS B250M PLUS+i5 7500+核显+macos12.0+opencore0.7.2
  9. 清华大学计算机学院2021拟录取,清华大学、上海交通大学公示拟录取2021级研究生名单了...
  10. 嵌入式工程师的经典面试题目及答案