杭电acm初学者课件.pptVIP

  • 1
  • 0
  • 约7.48千字
  • 约 70页
  • 2019-01-21 发布于浙江
  • 举报
* * 授课方式与成绩评定 介绍常用算法 举例分析 上机练习(自己在线练习) 成绩评定:机试 ( 5 ~ 6 题 ) * * 相关资料 数学知识 离散、组合 数论、图论 计算几何 算法数据结构 基本数据结构 搜索、分治 动态规划 贪心…… * * 学习方式 练习-总结-练习-总结-…… 杭电ACM论坛 google、baidu * * / 去哪里练习? * * 常见问题: 1、需要什么基础?( C/C++ ) 4 、可以退课吗? ( Of course! ) 3 、如何加入集训队? (200 申请 ) 2、英语不好怎么办?(问题不大) * * 想对大家说的话… * * 课后任务: 1、熟悉 2、完成在线练习: 《ACM Programming》Exercise(1) 3、学有余力,可以尝试下面题目: 1016-1018、1013、1061 1170、2000-2043 * * See you next week! * * * * * * Hdoj_1090源代码: #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,但以某个特殊输入为结束标志。 参见: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 /showproblem.php?pid=1093 /showproblem.php?pid=1094 * * 输入_第五类: 输入是一整行的字符串的 参见:HDOJ_1048 /showproblem.php?pid=1048 * * 本类输入解决方案: C语法: ? char buf[20]; ?gets(buf); C++语法: 如果用string buf;来保存: getline( cin , buf ); 如果用char buf[ 255 ]; 来保存: cin.getline( buf, 255 ); * * 说明(5_1): scanf(“ %s%s”,str1,str2),在多个字符串之间用一个或多个空格分隔; 若使用gets函数,应为gets(str1); gets(str2); 字符串之间用回车符作分隔。 通常情况下,接受短字符用scanf函数,接受长字符用gets函数。 而getchar函数每次只接受一个字符,经常c=getchar()这样来使用。 * * 说明(5_2):cin.getline的用法: getline 是一个函数,它可以接受用户的输入的字符,直到已达指定个数,或者用户输入了特定的字符。它的函数声明形式(函数原型)如下: istream getline(char line[], int size, char endchar = \n); 不用管它的返回类型,来关心它的三个参数: char line[]: 就是一个字符数组,用户输入的内容将存入在该数组内。 int size : 最多接受几个字符?用户超过size的输入都将不被接受。 char endchar :当用户输入endchar指定的字符时,自动结束。默认是回车符。 * * 说明(5_2)续 结合后两个参数,getline可以方便地实现: 用户最多输入指定个数的字符,如果超过,则仅指定个数的前面字符有效,如果没有超过,则用户可以通过回车来结束输入。 char name[4]; cin.getline(name,4,\n);

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档