INITIALIZING C++ SYSTEM...
LOADING COMPILER...
LOADING LESSON 01...
READY.
PRESS ANY KEY TO ENTER

C++ LEVEL 0

初识编程世界

02. 历史演进

C++ 并非凭空诞生,它经历了半个世纪的工业打磨。点击时间节点查看重要故事。

1972
C语言诞生
Dennis Ritchie
1979
C with Classes
Bjarne S.
1983
正式命名C++
1998
ISO 标准化
C++98
2011
现代C++起点
C++11
NOW
AI底层/游戏引擎

点击上方时间节点查看详细历史...

03. 编程语言类比

不同的语言有不同的设计哲学。点击卡片翻转,查看它们的优缺点与本质区别。

🚲

C语言

极致控制

C语言

✔ 优点:直接操作内存与硬件,速度极快,无额外开销。

✘ 缺点:需手动管理内存,大型项目代码组织困难,容易崩溃。

像自行车,完全由你控制,但需要自己平衡,门槛高。

🏎️

C++

性能与抽象

C++

✔ 优点:面向对象支持大型工程,性能依然极快,控制力强。

✘ 缺点:语法复杂,特性庞大,学习曲线陡峭。

像跑车,速度极快且有辅助系统(STL),适合造大工程,但驾驶门槛依然高。

🚄

Java/Python

开发效率

Java/Python

✔ 优点:自动内存回收,开发极快,生态丰富。

✘ 缺点:运行速度不如C++,底层硬件控制力弱。

像高铁/自动驾驶,写起来简单安全,但不能用来造最核心的引擎。

04. 代码四大基本结构

点击左侧代码行,右侧将列出该行所有英文单词的拆解与词源历史。

basic_structure.cpp
1// 预处理指令:引入标准库
2#include <iostream>
3// 声明使用标准命名空间
4using namespace std;
5// 主函数:程序唯一入口
6int main() {
7    return 0;
8}

词汇解析器

点击左侧代码行查看单词拆解

05. IPO 思维导图与手写演练

程序的本质是 Input(输入) -> Process(处理) -> Output(输出)。点击"开始演练"观察代码逐行运行。

📋 C++ 程序执行流程图

C++ 程序基本结构
[结构] 头文件
#include <iostream>
[结构] 命名空间
using namespace std;
[结构] 主函数入口
int main() {
[I] 获取数据
int a, b; cin >> a >> b;
[P] 完成计算
int sum = a + b;
[O] 输出结果
cout << sum << endl;
[结构] 返回与结束
return 0; }
teacher_demo.cpp
> 等待演练开始...

06. 运算符互动实验室

C++ 的五个基本算术运算符。输入数字实时计算,玩一玩取余游戏。

+
-
*
/
%

+

RESULT = 13

🍬 糖果分一分 (理解 % 取余)

有 10 颗糖,分给 3 个人。每人分几颗?剩几颗?

🍬🍬🍬🍬🍬🍬🍬🍬🍬🍬

输入你的答案...

01

小鱼的游泳时间

时间换算 · 除法与取余的综合运用

📖 教师讲解模式 任务 1 / 4

📝 题目描述

伦敦奥运会要到了,小鱼在拼命练习游泳准备参加游泳比赛,可怜的小鱼并不知道鱼类是不能参加人类的奥运会的。

这一天,小鱼给自己的游泳时间做了精确的计时(本题中的计时都按 24 小时制计算),它发现自己从 a 时 b 分一直游泳到当天的 c 时 d 分,请你帮小鱼计算一下,它这天一共游了多少时间呢?

小鱼游的好辛苦呀,你可不要算错了哦。

📥 输入格式

一行内输入四个整数,以空格隔开,分别表示题目中的 a, b, c, d。

📤 输出格式

一行内输出两个整数 e 和 f,用空格间隔,依次表示小鱼这天一共游了多少小时多少分钟。其中表示分钟的整数 f 应该小于 60。

🧪 样例 #1

输入
12 50 19 10
输出
6 20

🧪 样例 #2

输入
8 23 20 15
输出
11 52

⚠️ 提示

对于全部测试数据,0 ≤ a, c ≤ 24,0 ≤ b, d ≤ 60,且结束时间一定晚于开始时间。

💡 数学解题思路

第 1 步 · 分析难点
直接减:19−12=7 小时,但 10 分 − 50 分不够减,需要借位,手算易错。
第 2 步 · 统一基准
把时间全部换算成"分钟":
开始总分钟 = a × 60 + b
结束总分钟 = c × 60 + d
第 3 步 · 计算差值
总时长(分钟) = (c×60+d) − (a×60+b)
第 4 步 · 还原答案
小时 = 总时长 ÷ 60(整除)
分钟 = 总时长 % 60(取余)
第 5 步 · 样例验证
12 50 19 10 → (19×60+10)−(12×60+50) = 1150−770 = 380
380/60 = 6 小时,380%60 = 20 分钟 → 输出 "6 20" ✓
02

最大乘积

数学极值规律 · 数据溢出防御

📖 教师讲解模式 任务 2 / 4

📝 题目描述

小扣得到了一个正整数 n,他想把 n 拆成两个非负整数之和,并且让这两个非负整数之积尽量大。问这两个非负整数之积最大是多少。

📥 输入格式

输入一行,包含 1 个整数 n(1 ≤ n ≤ 10⁹)。

📤 输出格式

输出一行,包含一个整数,表示这两个非负整数之积的最大值。

🧪 样例 #1

输入
6
输出
9

🧪 样例 #2

输入
7
输出
12

⚠️ 数据范围

对于 60% 的数据,1 ≤ n ≤ 10⁴
对于 100% 的数据,1 ≤ n ≤ 10⁹

💡 数学解题思路

第 1 步 · 探索规律
以 n=6 为例:
拆 1+5 → 1×5 = 5
拆 2+4 → 2×4 = 8
拆 3+3 → 3×3 = 9 ←最大!
第 2 步 · 发现规律
两个数的和一定时,它们越接近,乘积越大!
第 3 步 · 得出方案
把 n 平分:a = n/2,b = n − n/2
偶数时两数相等,奇数时相差 1
第 4 步 · 样例验证
n=7 → 3+4 → 3×4 = 12 ✓ 匹配样例
第 5 步 · 陷阱警告
n 最大 10⁹,乘积约 2.5×10¹⁷
而 int 最大约 2.1×10⁹ → 会溢出!
第 6 步 · 工程解决
数据类型必须用 long long(8字节,上限约 9.2×10¹⁸),稳稳装下答案。
03

容斥问题

集合逻辑 · 你来独立完成!

⌨️ 学员闯关模式 任务 3 / 4

📝 题目描述

小扣的班级里要评选优秀生,其中语文优秀或者数学优秀的学生有资格参与评选,已知有 n 个学生语文优秀,有 m 个学生数学优秀,不过其中有 k 个学生语文和数学都优秀。

那么一共会有多少学生有资格参与优秀生评选呢?

📥 输入格式

输入一行,包含 3 个整数 n, m, k(1 ≤ k, n, m ≤ 10⁹,k ≤ min(n, m))。

📤 输出格式

输出一行,包含 1 个整数,表示有资格参与优秀生评选的学生数。

🧪 样例 #1

输入
5 4 3
输出
6

⚠️ 提示

对于 100% 的数据,1 ≤ k, n, m ≤ 10⁹,k ≤ min(n, m)

🔓 提示解锁(先自己想!)

提示 1
试着画两个相交的圆(韦恩图):左边圈是语文优秀的 n 人,右边圈是数学优秀的 m 人,中间重叠部分是双优秀的 k 人。
提示 2
如果直接 n + m,重叠的 k 个人被算了几次?
提示 3
答案 = n + m − k
验证样例:5 + 4 − 3 = 6 ✓
🖥️ 上机检查清单:
☐ 每条语句结尾有分号 ;
☐ 注意 n, m, k 范围可达 10⁹,考虑用 long long
☐ 样例 5 4 3 → 输出 6 通过后再提交
04

求阴影面积

几何公式推导 · 你来独立完成!

⌨️ 学员闯关模式 任务 4 / 4

📝 题目描述

用户输入一个正整数 a(0 < a < 100),作为如图半圆的直径,同时作为如图等腰直角三角形的直角边长度,求下图的阴影部分面积。

阴影面积示意图
已知条件:
1. 半圆的直径和等腰直角三角形直角边长度相同;
2. 三角形与半圆部分重叠。

📎 提示信息

三角形面积公式:S = (a × h) / 2(a 为底边,h 为对应的高)

圆形面积公式:S = πr²(r 为半径,π = 3.14)

📥 输入格式

输入一个正整数 a(0 < a < 100)。

📤 输出格式

输出图形的阴影面积(保证面积一定为整数)。

🧪 样例 #1

输入
10
输出
25

🔓 提示解锁(先自己想!)

提示 1
等腰直角三角形两条直角边都是 a,那么它的面积 = a × a ÷ 2
提示 2
半圆直径为 a,半径 r = a ÷ 2,半圆面积 = π × r × r ÷ 2。仔细观察图形中阴影与三角形的对称关系。
提示 3
推导化简后,阴影面积恰好 = a × a ÷ 4
验证样例:a=10 → 100 ÷ 4 = 25 ✓(结果保证是整数)
🖥️ 上机检查清单:
☐ 输入用 cin,输出用 cout
☐ 利用整除:a * a / 4
☐ 样例 10 → 输出 25 通过后再提交

08. 课堂复习系统

巩固本节课核心知识。点击单词卡片可再次播放发音。

📖 核心英语词汇

include
iostream
namespace
main
return

🧱 四大基本结构

#include <iostream>

导入标准输入输出流库

using namespace std;

声明使用标准命名空间

int main() { ... }

主函数,程序唯一入口

return 0;

交还控制权,正常退出

⚔️ 本节课题目

任务-1:小鱼的游泳时间
考点:时间换算与 % 取余
任务-2:最大乘积
考点:数学极值与 long long 防溢出
任务-3:容斥问题
考点:集合逻辑 n + m − k
任务-4:求阴影面积
考点:几何公式推导与代码转化

C++ LEVEL 0 已完成

你已解锁 5 个成就,欢迎来到编程世界,!

✅ 知识点清单

✔️ 理解 C++ 历史与跨平台特性

✔️ 掌握四大基本结构与 IPO 模型

✔️ 理解 #include 与命名空间

✔️ 会使用 cin / cout 进行 I/O

✔️ 掌握 5 种算术运算符

✔️ 理解 % 取余的底层逻辑

✔️ 警惕 int 数据溢出

✔️ 完成 2 个讲解 + 2 个实战任务

🌱

新手程序员

📖

代码史学家

🍬

数学战士

🏆

任务通关者

🚀

C++启航者