【2017年整理】ACM输入输出介绍.ppt

  1. 1、本文档共86页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
【2017年整理】ACM输入输出介绍

ACM程序设计 ACM题目特点 由于ACM竞赛题目的输入数据和输出数据一般有多组(不定),并且格式多种多样,所以,如何处理题目的输入输出是对大家的一项最基本的要求。这也是困扰初学者的一大问题。 下面,分类介绍: 一个超级简单的题目(ex-1): Problem Description Your task is to calculate a + b. Input The input will consist of a series of pairs of integers a and b, separated by a space, one pair of integers per line.? Output For each pair of input integers a and b you should output the sum of a and b in one line, and with one line of output for each line in input. Sample input 1 5 10 20 Sample output 6 30 初学者很常见的一种写法: #includestdio.h void main() { int a,b; scanf(“%d %d”,a,b); Printf(“%d”,a+b); } 有什么问题呢? 这就是下面需要解决的问题 输入第一类: 输入不说明有多少个Input Block,以EOF为结束标志。 参见:ex-1. ex-1源代码: #include stdio.h int main() { int a,b; while(scanf(%d %d,a, b) != EOF) printf(%d\n,a+b); } 本类输入解决方案: C语法: while(scanf(%d %d,a, b) != EOF) { ? ? .... } C++语法: while( cin a b ) { ? ? .... } 说明: Scanf函数返回值就是读出的变量个数,如:scanf( “%d %d”, a, b ); 如果a和b都被成功读入整数,那么scanf的返回值就是2; 如果只有a被成功读入整数,返回值为1; 如果a和b都未被成功读入整数,返回值为0; 如果遇到错误或遇到end of file,返回值为EOF EOF是一个预定义的常量,等于-1。 输入第二类: 输入一开始就会说有N个Input Block,下面接着是N个Input Block。 ex-2 Problem Description Your task is to calculate a + b. Input Input contains an integer N in the first line, and then N lines follow. Each line consists of a pair of integers a and b, separated by a space, one pair of integers per line. Output For each pair of input integers a and b you should output the sum of a and b in one line, and with one line of output for each line in input.? Sample input 2 1 5 10 20 Sample output 6 30 ex-2源代码: #include stdio.h int main() { int n,i,a,b; scanf(%d,n); for(i=0;in;i++) { scanf(%d %d,a, b); printf(%d\n,a+b); } } 本类输入解决方案: C语法: scanf(%d,n) ; for( i=0 ; in ; i++ ) { ? ? .... } C++语法: cin n; for( i=0 ; in ; i++ ) { ? ? .... } 输入第三类: 输入不说明有多少个Input Block,但以某个特殊输入为结束标志。 ex-3 Problem Description Your task is to calculate a + b. Input Input contains multiple test cases. Each test c

文档评论(0)

jiupshaieuk12 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:6212135231000003

1亿VIP精品文档

相关文档