《ACM程序设计》01基本输入输出.pdf

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

ACM题目特点: 由于ACM竞赛题目的输入数据和输出 数据一般有多组(不定),并且格式多种 多样,所以,如何处理题目的输入输出是 对大家的一项最基本的要求。这也是困扰 初学者的一大问题。 下面,分类介绍: 先看一个超级简单的题目: •/acm/problem.php?id=1365 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为结束标志。 参见:JLNUOJ_1365 •/acm/problem.php?id=1365 JLNUOJ_1365源代码: #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 ) { } 说明(1): 1. scanf函数返回值就是读出的变量个数,如: scanf( “%d %d”, a, b ); 如果只有一个整数输入,返回值是1,如果有两个整 数输入,返回值是2,如果一个都没有,则返回值是 -1。 2. EOF是一个预定义的常量,等于-1。 输入_第二类: •输入一开始就会说有N个Input Block,下面接着是N 个Input Block。 参见:JLNUOJ_1366 •/acm/problem.php?id=1366 JLNUOJ_1366源代码: #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,但以某个特殊输入 为结束标志。 参见: JLNUOJ_1367 •/acm/problem.php?id=1367 JLNUOJ_1367源代码: #include stdio.h int main() { int a,b; while(scanf(%d %d,a, b) (a!=0 b!=0)) printf(%d\n,a+b); } 上面的程序有什么问题? 本类输入解决方案: •C语法: while(scanf(%d,n) n!=0 ) { } •C++语法: while( cin n n != 0 ) { } 输入_第四类: 以上几种情况的组合 •/acm/problem.php?id=1368 •/acm/problem.php?id=1369 •/acm/problem.php?id=1370 输入_第五类: •输入是一整行的字符

文档评论(0)

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

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

1亿VIP精品文档

相关文档