C 字符、真假与输入输出大比拼 学习目标掌握char和bool类型学会使用scanf/printf并搞懂它和cin/cout的区别。第一部分char和bool在之前的课程里我们认识了存整数的int和存小数的double。今天我们要认识两个更特别的朋友1.char—— 单个字符的“小盒子” 它是谁char是 character字符的缩写。它专门用来存放一个符号。能装什么字母‘A’, ‘z’、数字字符‘0’, ‘9’、标点符号‘!’, ‘?’。特别注意敲黑板必须用单引号 包起来比如char grade A;。只能存一个想存 “Hello” 是不行的那是字符串的事。数字陷阱char a 1;和int b 1;是完全不同的1是个符号像图片而1是个数值可以计算。在计算机里1其实对应着数字 49ASCII码。2.bool—— 只有真假的“开关” 它是谁bool是 Boolean布尔的缩写以数学家布尔命名。能装什么只有两个值true真/对和false假/错。怎么用就像家里的电灯开关要么开1要么关0。boolisRainytrue;// 下雨了吗是的。boolisHomeworkDonefalse;// 作业写完了吗没呢。注意如果你用cout输出bool变量默认会显示1(代表true) 或0(代表false)。如果想看单词需要加一句cout boolalpha isRainy;就会输出 “true” 啦第二部分C语言的“老前辈”——scanf和printf虽然我们是学 C 的但在信奥赛CSP-J/S中有时候数据量非常大cin和cout可能会跑得比较慢像老牛拉车。这时候我们需要请出 C 语言留下的“涡轮增压”工具——scanf和printf。它们通常更快1.scanf—— 快速读取器 怎么写scanf(格式占位符, 变量名);关键点变量名前必须加取地址符想象成告诉电脑变量的“家庭住址”它才能把数据送进去。需要“占位符”来告诉电脑我要读什么类型的数据。数据类型占位符例子int (整数)%dscanf(%d, age);double (小数)%lfscanf(%lf, price);char (字符)%cscanf(%c, letter);long long%lldscanf(%lld, bigNum);2.printf—— 精准打印机 ️怎么写printf(格式占位符, 变量名);关键点不需要加直接放变量名。它可以很精确地控制输出格式比如保留几位小数。doublepi3.1415926;printf(%.2f,pi);// 输出 3.14 保留两位小数第三部分巅峰对决——cin/coutvsscanf/printf⚔️为了让大家更清楚什么时候用谁老师做了一个对比表特性cin / cout (C 风格)scanf / printf (C 风格)书写难度⭐ (很简单不用背占位符)⭐⭐⭐ (要记 %d, %lf 等)运行速度 较慢 (特别是数据多的时候)非常快(比赛神器)换行endl或\n\n变量前加?不需要scanf 必须要加适用场景平时练习、简单题目大型比赛、数据量超过10万时 老师的建议避坑指南平时写作业放心用cin和cout因为它们不容易写错代码也好看。打比赛时如果题目说N≤1,000,000N \le 1,000,000N≤1,000,000一百万请务必使用scanf和printf防止超时TLE。混合使用要小心尽量不要在一个程序里混用cin和scanf有时候会发生“堵车”缓冲区问题导致读不到数据。如果非要混用需要在main函数第一行加上ios::sync_with_stdio(0);。