PAT201201PAT入门基础.ppt

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

PAT培训教程 杭州电子科技大学 刘春英 acm@ 课前说明: 自我介绍; 关于本次培训的举办; 特别说明 关于授课内容; 关于课堂纪律:禁食,禁铃; 关于PAT WHAT: PAT--Programming Ability Test WHERE: Come from ACM/ICPC WHY: 客观、实践、实用、效率、快乐 HOW: 7+1、入门培养、重在实践 PAT VS ACM 1、评测方式的区别 (单Case VS 多Case); 2、评测结果的区别 (分数 VS 题数+罚时); 3、考核内容的区别; 4、考核规则的区别 (单人闭卷 VS 组队开卷); 就业统计信息: 共27人合影(含4位老师),其余: 7位网易;4位百度; 3位微软;1位谷歌; 1位阿里;1位微策略; 1位腾讯;1位南宁烟草局; 4位在网新恒天、同花顺等; 第一讲 PAT入门基础 (Introduction to PAT) 第一部分 让PAT从ACM起步~ ACM题目特点: 由于ACM竞赛题目的输入数据和输出数据一般有多组(不定),并且格式多种多样,所以,如何处理题目的输入输出是对大家的一项最基本的要求。这也是困扰初学者的一大问题。 下面,分类介绍: 先看一个超级简单的题目: /showproblem.php?pid=1089 Sample input: 1 5 10 20 Sample output: 6 30 初学者很常见的一种写法: #include<stdio.h> void main() { int a,b; scanf(“%d %d”,&a,&b); Printf(“%d”,a+b); } 有什么问题呢? 这就是下面需要解决的问题 基本输入输出汇总 输入_第一类: 输入不说明有多少个Input Block,以EOF为结束标志。 参见:HDOJ_1089 /showproblem.php?pid=1089 Hdoj_1089源代码: #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): Scanf函数返回值就是读出的变量个数,如:scanf( “%d %d”, &a, &b ); 如果只有一个整数输入,返回值是1,如果有两个整数输入,返回值是2,如果一个都没有,则返回值是-1。 EOF是一个预定义的常量,等于-1。 输入_第二类: 输入一开始就会说有N个Input Block,下面接着是N个Input Block。 参见:HDOJ_1090 /showproblem.php?pid=1090 Hdoj_1090源代码: #include <stdio.h> int main() { int n,i,a,b; scanf("%d",&n); for(i=0;i<n;i++) { scanf("%d %d",&a, &b); printf("%d\n",a+b); } } 本类输入解决方案: C语法: scanf("%d",&n) ; for( i=0 ; i<n ; i++ ) { ? ? .... } C++语法: cin >> n; for( i=0 ; i<n ; i++ ) { ? ? .... } 输入_第三类: 输入不说明有多少个Input Block,但以某个特殊输入为结束标志。 参见:HDOJ_1091 /showproblem.php?pid=1091 Hdoj_1091源代码: #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 ) { ? ? .... } 输入_第四类: 以上几种情况的组合 /showproblem.php?pid=1092

文档评论(0)

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

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

1亿VIP精品文档

相关文档