【读书笔记】算法竞赛入门经典读书笔记1——第1部分 语言篇


本篇博客记录一下《算法竞赛入门经典》这本书的读书笔记,最近一直想复习一下数据结构与算法,顺便刷刷题做一下职业规划,正好以前一门选修课买了这本书,因此想把这本书作为入门学习的一部分

第1章 程序设计入门

第1章主要是介绍一些c语言的基本概念,对于有c语言基础的人可以快速过一下,同时也介绍了一些在竞赛中的程序规范:

  • 在竞赛中程序的执行是自动完成的,没有人工干预,因此不能打印一些提示信息
  • 不要让程序按任意键退出(system("pause")和getchar()等)
  • 输出的格式要严格按照要求
  • 算法竞赛的目标是编程对任意输入均得到正确的结果,而不仅是样例数据

根据书中所给的例子还学习了一些c语言的知识:

  • %m.n__:指定数据宽度和小数位数,输出占m列,其中包括n位小数(小数点占1位),n位的最后一位按四舍五入处理
  • %-m.n__:输出的数据向左对齐,数据向左端靠,右端补空格(默认是右对齐,左端补空格)
  • %0nd:不足n位长度左补齐0
  • c语言的逻辑算法符都是短路运算符,一旦能够确定整个表达式的值,就不再继续计算

以及编程的一些技巧:

  • 交换两个变量:三变量法
  • 可以通过手工模拟的方法理解程序的执行方式
  • 原则:保持简单(Keep It Simple and Stupid,KISS)

C语言、C99、C11及其他

编译器:把人类可以看懂的源代码变成机器可以直接执行的指令

C语言标准:

  • C11
  • C99
  • ANSI C(C89)

循环结构程序设计