news 2026/6/22 22:50:45

小学生学C++编程 (一维数组精讲)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
小学生学C++编程 (一维数组精讲)

一、🧙‍♂️📦《C++ 数组魔法王国》开讲了!

🧙‍♂️ 第一章:数组是什么?(超级重要!)

📖 故事:魔法储物柜 🧳

想象一下:

魔法学校里有一排一模一样的小柜子
每个柜子都可以放一个魔法球 🔮
每个柜子都有一个编号

这排柜子,就是——

👉数组(Array)!

📌一句话理解数组:

数组 = 一排排在一起的“同类型小盒子”


🧠 数组和普通变量的区别

❌ 不用数组(很累 😵)

int a1, a2, a3, a4, a5;

✅ 用数组(很爽 😄)

int a[5];

📌数组帮我们:

  • 一次存很多数据

  • 名字只用一个

  • 管理超级方便


🧙‍♂️ 第二章:数组怎么创建?

🎯 创建一个数组的魔法公式:

类型 名字[数量];

🌰 例子:5 个学生的成绩

int score[5];

🧠 含义是:

  • int:每个盒子放整数

  • score:这一排柜子的名字

  • [5]:一共有 5 个柜子

📌重点:数组大小一旦创建,就不能变!


🧙‍♂️ 第三章:数组的编号(索引 index)

🚨 超级重要的魔法规则!

第一个盒子编号是 0 不是 1!!!
柜子编号
第 1 个0
第 2 个1
第 3 个2
第 4 个3
第 5 个4

🌰 例子

score[0] = 90; // 第 1 个学生 score[1] = 85; // 第 2 个学生

📌口诀:

数组从 0 开始数!


🧙‍♂️ 第四章:给数组放东西(赋值)

📖 故事:给柜子放魔法球 🔮

int a[3]; a[0] = 10; a[1] = 20; a[2] = 30;

🧠 理解:

  • a[0]:第一个盒子

  • =:放进去


🎁 创建时直接放好(推荐)

int a[3] = {10, 20, 30};

📌 如果少写了?

int a[5] = {1, 2};

👉 后面自动变成0


🧙‍♂️ 第五章:数组怎么一个一个看?(遍历)

📖 故事:巡逻小机器人 🤖

小机器人从第 0 个柜子
一直走到最后一个柜子

🎯 遍历数组的经典写法

for (int i = 0; i < 5; i++) { cout << a[i] << endl; }

🧠 解释:

  • i是柜子编号

  • i++一个一个走

  • a[i]取出里面的东西

📌数组 + for 循环是黄金搭档!


🧙‍♂️ 第六章:修改数组里的值

📖 故事:魔法球升级 ✨

a[1] = a[1] + 5;

🧠 意思是:

  • 找到第 2 个柜子

  • 里面的值 +5

  • 再放回去


🌰 全体加 10 分(超常用)

for (int i = 0; i < 5; i++) { a[i] += 10; }

一行循环,改一排数据!


🧙‍♂️ 第七章:数组到底帮了我们什么?(超重要)

🌟 例子 1:统计成绩及格人数

❌ 不用数组(写到哭 😭)

int s1, s2, s3, s4, s5;

✅ 用数组(轻松 😎)

int score[5]; int pass = 0; for (int i = 0; i < 5; i++) { cin >> score[i]; if (score[i] >= 60) pass++; }

📌数组 + 循环 + 分支 = 真正的程序!


🌟 例子 2:找最大值

int a[5] = {12, 45, 7, 30, 20}; int mx = a[0]; for (int i = 1; i < 5; i++) { if (a[i] > mx) { mx = a[i]; } } cout << mx << endl;

🧠 数组让“比较很多数”变简单!


🌟 例子 3:记录每天的温度 🌡️

int temp[7]; for (int i = 0; i < 7; i++) { cin >> temp[i]; }

📌 不用 7 个变量,一个数组就够!


🧙‍♂️ 第八章:数组学习必记口诀(送你!)

🌟数组四大口诀🌟

1️⃣ 一排盒子装同类
2️⃣ 编号从 0 开始
3️⃣ for 循环来帮忙
4️⃣ 修改读取用下标


🧙‍♂️ 第九章:数组 + 编程能力升级路线 🚀

学会数组,你就能写:

✅ 成绩统计系统
✅ 游戏血量记录
✅ 商店价格表
✅ 排名、计数、分类
✅ 为以后学习字符串、二维数组、算法打基础!


🎉 一句话小结❤️

数组就像“帮你记忆很多事情的小助手”,
学会它,程序才真的变聪明!


二、我们接下来,继续上一节🌟“防踩坑”特别课🌟

🧙‍♂️《C++ 数组 · 十大魔法陷阱大冒险》🕳️✨


🧙‍♂️ 陷阱 1:数组从 1 开始?❌

❗ 真相:数组从 0 开始!

📖 故事

小法师以为第一个柜子是1 号
结果把魔法球塞进了不存在的柜子💥

❌ 错误代码

int a[5]; a[1] = 10; // 想放第一个

✅ 正确做法

a[0] = 10; // 第一个柜子

📌口诀 1️⃣

数组编号从 0 起!


🧙‍♂️ 陷阱 2:访问不存在的柜子(越界)💥

📖 故事

明明只有 5 个柜子,
却去打开第 5 号柜子……
结果——炸了!💣

❌ 错误代码

int a[5]; a[5] = 100; // 最大只能到 a[4]

✅ 正确范围

a[0] ~ a[4]

📌口诀 2️⃣

最大下标 = 数量 − 1


🧙‍♂️ 陷阱 3:for 循环写错范围 😵

📖 故事

巡逻机器人走太远,
走出了柜子区,掉坑里了 🤖🕳️

❌ 错误代码

for (int i = 0; i <= 5; i++) { cout << a[i] << endl; }

✅ 正确代码

for (int i = 0; i < 5; i++) { cout << a[i] << endl; }

📌口诀 3️⃣

<对,<=危险!


🧙‍♂️ 陷阱 4:数组没装东西就用 ❄️

📖 故事

柜子是空的,
却直接拿来用,
拿出来的是“空气魔法” 👻

❌ 错误代码

int a[3]; cout << a[0];

✅ 正确做法

int a[3] = {0};

a[0] = 10;

📌口诀 4️⃣

用之前,先放值!


🧙‍♂️ 陷阱 5:数组不能整体输入 ❌

📖 故事

小法师想一次把 5 个球塞进柜子,
结果柜子说:我不吃整包!📦❌

❌ 错误代码

int a[5]; cin >> a; // ❌ 不行!

✅ 正确做法

for (int i = 0; i < 5; i++) { cin >> a[i]; }

📌口诀 5️⃣

数组要一个一个来!


🧙‍♂️ 陷阱 6:把数组当成一个普通变量 🤯

📖 故事

一整排柜子,
却想直接加 1?
柜子:我不懂啊!😵

❌ 错误代码

a = a + 1; // ❌

✅ 正确做法

a[0] = a[0] + 1;

或用循环

for (int i = 0; i < 5; i++) { a[i]++; }

📌口诀 6️⃣

数组不是一个数!


🧙‍♂️ 陷阱 7:数组大小写错 😬

📖 故事

只有 3 个柜子,
却硬要放 5 个球,
后果你懂的 💥

❌ 错误代码

int a[3]; for (int i = 0; i < 5; i++) { cin >> a[i]; }

✅ 正确做法

int a[5];

for (int i = 0; i < 3; i++)

📌口诀 7️⃣

数量和循环要一致!


🧙‍♂️ 陷阱 8:忘记数组大小是固定的 🧱

📖 故事

魔法柜子已经做好,
却想中途加一个,
柜子:做不到!🚫

❌ 错误想法

int a[5]; // 运行时想改成 10

✅ 正确认知

  • 数组大小创建时决定

  • 想变大?以后学vector

📌口诀 8️⃣

数组大小不能变!


🧙‍♂️ 陷阱 9:忘了 break,switch 里数组被连环执行 😱

📖 故事

魔法机关本该停下,
却一路狂奔,
把好几个柜子都改了 😵‍💫

❌ 错误代码

switch (x) { case 1: a[0] = 10; case 2: a[1] = 20; }

✅ 正确代码

switch (x) { case 1: a[0] = 10; break; case 2: a[1] = 20; break; }

📌口诀 9️⃣

case 后面要 break!


🧙‍♂️ 陷阱 10:数组下标写成变量值 😵‍💫(终极)

📖 故事

柜子编号只能是 0、1、2……
却拿“成绩 90”当编号,
柜子直接爆炸 💥

❌ 错误代码

int score = 90; int a[5]; a[score] = 10; // ❌

✅ 正确思路

int i = 2; a[i] = 10;

📌口诀 🔟

下标是编号,不是内容!


🎓 学习总结(送给小程序员)

🌟数组防坑十守则🌟

1️⃣ 从 0 开始
2️⃣ 不越界
3️⃣<不要<=
4️⃣ 用前先赋值
5️⃣ 一个一个输入
6️⃣ 数组不是数
7️⃣ 大小要对齐
8️⃣ 创建就定死
9️⃣ switch 要 break
🔟 下标别乱用


❤️ 老师寄语

数组就像一排整齐的小抽屉,
用对了,它帮你记住一切;
用错了,它就闹脾气!


三、接下来我们开启《数组 + 选择语句 + 循环 ·魔法试炼》⚔️✨

🟢 低难度区(第 1–3 题)

👉 目标:熟练数组 + for + if


🧩 第 1 题:魔法糖果统计员 🍬(低)

📖 故事

小魔法师有n颗糖果,每颗糖果都有甜度值。
甜度 ≥ 60 的糖果是“好糖果”

📥 输入

  • 一个整数n

  • 接着n个整数(甜度)

📤 输出

好糖果的数量


🧠 思路分析

  • 用数组存甜度

  • 用循环读入

  • if判断是否 ≥ 60

  • 用计数器统计


✅ 参考代码

#include <iostream> using namespace std; int main() { int n; cin >> n; int sweet[100]; int good = 0; for (int i = 0; i < n; i++) { cin >> sweet[i]; if (sweet[i] >= 60) { good++; } } cout << good << endl; return 0; }

📌重点:数组存数据,if负责筛选


🧩 第 2 题:魔法温度报警器 🌡️(低)

📖 故事

记录7天的温度:

  • 温度 < 0 → “结冰”

  • 否则 → “正常”

📤 输出

每天一行对应状态


🧠 思路分析

  • 固定 7 个数据

  • 循环遍历

  • if-else二选一


✅ 参考代码

#include <iostream> using namespace std; int main() { int temp[7]; for (int i = 0; i < 7; i++) { cin >> temp[i]; if (temp[i] < 0) { cout << "结冰" << endl; } else { cout << "正常" << endl; } } return 0; }

📌重点:数组 + if-else 的基本配合


🧩 第 3 题:魔法数字加分 ✨(低)

📖 故事

n个魔法数:

  • 如果是偶数→ 加 10

  • 如果是奇数→ 不变

最后输出修改后的数组。


🧠 思路分析

  • 数组存数

  • if (x % 2 == 0)判断

  • 直接修改数组中的值


✅ 参考代码

#include <iostream> using namespace std; int main() { int n; cin >> n; int a[100]; for (int i = 0; i < n; i++) { cin >> a[i]; if (a[i] % 2 == 0) { a[i] += 10; } } for (int i = 0; i < n; i++) { cout << a[i] << " "; } return 0; }

📌重点:通过下标修改数组内容


🟡 中等难度区(第 4–6 题)

👉 目标:分类、统计、综合判断


🧩 第 4 题:魔法宝箱编号整理 🧰( 数组索引)

📖 故事

魔法城有n个宝箱,每个宝箱都有一个编号。
城主想知道:

  • 第一个宝箱

  • 最后一个宝箱

分别是多少编号。


🧠 思路分析

  • 用数组存编号

  • 第一个宝箱是a[0]

  • 最后一个宝箱是a[n-1]

👉必须理解数组下标


✅ 参考代码

#include <iostream> using namespace std; int main() { int n; cin >> n; int box[100]; for (int i = 0; i < n; i++) { cin >> box[i]; } cout << box[0] << " " << box[n - 1] << endl; return 0; }

📌重点

  • 数组从0 开始

  • 最后一个元素是n − 1


🧩 第 5 题:魔法商店折扣 🏪

📖 故事

记录n件商品价格:

  • 价格 ≥ 100 → 打 8 折

  • 否则 → 原价

输出最终价格。


🧠 思路分析

  • 数组存价格

  • if 判断是否打折

  • 修改数组再输出


✅ 参考代码

#include <iostream> using namespace std; int main() { int n; cin >> n; int price[100]; for (int i = 0; i < n; i++) { cin >> price[i]; if (price[i] >= 100) { price[i] = price[i] * 8 / 10; } } for (int i = 0; i < n; i++) { cout << price[i] << " "; } return 0; }

📌重点:数组 + 条件修改


🧩 第 6 题:魔法能量反转术 🔁(数组整体操作)

📖 故事

魔法师施放了“反转术”,
一个能量序列需要从后往前输出


🧠 思路分析

  • 用数组保存所有能量

  • 倒着用下标访问数组

  • 数组顺序可以随意控制


✅ 参考代码

#include <iostream> using namespace std; int main() { int n; cin >> n; int energy[100]; for (int i = 0; i < n; i++) { cin >> energy[i]; } for (int i = n - 1; i >= 0; i--) { cout << energy[i] << " "; } return 0; }

📌重点
数组让“顺序变化”成为可能
👉 没数组就几乎做不到!


🔴 高难度区(第 7–8 题)

👉 目标:综合判断 + 稍强逻辑


🧩 第 7 题:魔法排名助手 🏆

📖 故事

输入n个分数,
统计高于平均分的人数。


🧠 思路分析

1️⃣ 用数组存分数
2️⃣ 先算总和、平均分
3️⃣ 再遍历统计


✅ 参考代码

#include <iostream> using namespace std; int main() { int n; cin >> n; int a[100]; int sum = 0; for (int i = 0; i < n; i++) { cin >> a[i]; sum += a[i]; } int avg = sum / n; int cnt = 0; for (int i = 0; i < n; i++) { if (a[i] > avg) { cnt++; } } cout << cnt << endl; return 0; }

📌重点:数组要遍历两次!


🧩 第 8 题:魔法重复值探测器 🔍(高 · 数组综合)

📖 故事

魔法仪器记录了n次能量值,
如果相邻两次能量一样,说明仪器出故障了。

请统计发生故障的次数


🧠 思路分析

  • 用数组存所有数据

  • 从第2 个数开始比较

  • 比较a[i]a[i-1]

  • 相等就计数


✅ 参考代码

#include <iostream> using namespace std; int main() { int n; cin >> n; int a[100]; int error = 0; for (int i = 0; i < n; i++) { cin >> a[i]; } for (int i = 1; i < n; i++) { if (a[i] == a[i - 1]) { error++; } } cout << error << endl; return 0; }

🎓 总结 ❤️

数组负责“记住很多东西”,
循环负责“一个一个处理”,
选择语句负责“做出正确决定”。

学会这三件套,
你已经是真正的小程序员啦!🚀✨

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/23 16:13:07

研发绩效评估的关键指标

研发&#xff08;R&D&#xff09;绩效评估是企业管理中的一个复杂难题&#xff0c;它试图量化一个本质上充满创造性、探索性和不确定性的过程。要准确评估研发绩效&#xff0c;关键指标应超越传统的“代码行数”或“工时”&#xff0c;转向一个多维度的框架&#xff0c;核心…

作者头像 李华
网站建设 2026/6/23 18:33:11

[CISCN2019 华北赛区 Day1 Web2]ikun

第一次做pickle反序列化 1.打开题目是这个页面 信息收集一下 目录扫描无可用信息、翻看源码&#xff0c;发现提示 感觉这个lv6就是提示&#xff0c;因为首页面下方对应的就是等级 寻找一下lv6 这里发现他的页数是可控的 然后lv等级数也是有规则的 那么只需要写个脚本&#x…

作者头像 李华
网站建设 2026/6/23 6:07:02

LobeChat投诉处理建议生成引擎

LobeChat 投诉处理建议生成引擎&#xff1a;从架构到落地的全链路实践 在客户服务领域&#xff0c;每一次客户投诉都是一次信任危机&#xff0c;也是一次改进机会。但现实是&#xff0c;许多企业仍依赖人工客服逐条阅读、理解并回应投诉内容——这种方式不仅响应慢&#xff0c;…

作者头像 李华
网站建设 2026/6/23 18:33:23

杨建允:AI搜索优化赋能全链路营销的全流程

AI搜索优化的全链路营销正在深刻重塑企业获取用户和提升转化的策略&#xff0c;其影响贯穿用户触达、互动、转化和留存的各个环节。 用户认知与行为变革&#xff1a; AI搜索的普及正改变用户获取信息的习惯&#xff0c;从主动“搜索”转向被动“问答”。用户通过自然语言向AI提…

作者头像 李华
网站建设 2026/6/23 15:52:57

AI原生应用中的长尾用户意图理解解决方案

AI原生应用中的长尾用户意图理解解决方案 关键词&#xff1a;AI原生应用、长尾用户意图、意图理解、小样本学习、多模态融合、持续学习、自然语言处理 摘要&#xff1a;在AI原生应用&#xff08;如智能助手、个性化推荐系统&#xff09;中&#xff0c;用户不再满足于“标准化对…

作者头像 李华
网站建设 2026/6/23 18:36:21

23、Vim 多文件查找替换与全局命令使用技巧

Vim 多文件查找替换与全局命令使用技巧 在 Vim 编辑器中,我们常常会遇到需要在多个文件中进行查找替换,或者对匹配特定模式的行执行操作的需求。下面将详细介绍如何在 Vim 中实现这些功能。 多文件查找替换 在项目中,有时我们需要将某个特定的字符串替换为另一个字符串。…

作者头像 李华