news 2026/3/28 23:29:32

小学生学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/3/27 4:54:29

DeepSeek-Math完全攻略:7大必知技巧快速掌握数学AI神器

想要快速上手这款强大的数学推理AI模型吗&#xff1f;DeepSeek-Math基于先进的DeepSeek-Coder-v1.5 7B架构&#xff0c;在数学相关数据上深度优化&#xff0c;在权威的MATH基准测试中斩获51.7%的优异成绩&#xff0c;性能直逼业界顶尖的Gemini-Ultra和GPT-4。本文将为你揭秘从零…

作者头像 李华
网站建设 2026/3/16 6:57:06

如何5步掌握系统区域模拟:轻松切换软件语言环境的完整指南

如何5步掌握系统区域模拟&#xff1a;轻松切换软件语言环境的完整指南 【免费下载链接】Locale-Emulator Yet Another System Region and Language Simulator 项目地址: https://gitcode.com/gh_mirrors/lo/Locale-Emulator 您是否曾经遇到过这样的困扰&#xff1a;下载…

作者头像 李华
网站建设 2026/3/19 12:12:29

LobeChat能否对接Shopify?电商客服机器人集成方案

LobeChat能否对接Shopify&#xff1f;电商客服机器人集成方案 在今天的跨境电商战场中&#xff0c;响应速度就是转化率。一位顾客深夜下单后发来消息&#xff1a;“我的订单 #1001 到哪了&#xff1f;” 如果等到第二天才收到人工回复&#xff0c;很可能就失去了这位客户。而如…

作者头像 李华
网站建设 2026/3/27 8:34:25

19、Vim 搜索与匹配技巧全解析

Vim 搜索与匹配技巧全解析 正则表达式开关 在进行搜索时,创建正则表达式是一项常见需求。在非常非魔术搜索(very nomagic search)中创建正则表达式虽可行,但由于要对每个符号进行转义,操作起来比较麻烦。一般规则是:若要搜索正则表达式,使用 \v 模式开关;若要搜索逐…

作者头像 李华
网站建设 2026/3/26 6:25:44

LobeChat股票行情数据获取与展示

LobeChat 股票行情数据获取与展示 在金融信息快速迭代的今天&#xff0c;投资者对实时、精准且易于理解的股票行情数据需求愈发迫切。传统的金融终端虽然功能强大&#xff0c;但操作复杂、学习成本高&#xff1b;而普通用户更希望像聊天一样&#xff0c;随口问一句“宁德时代现…

作者头像 李华
网站建设 2026/3/24 16:08:08

记录宴会排查

1.大概能看出来是前后端数据不一致&#xff0c;因为有错误码&#xff0c;但是没看出来为啥。2.宴会数据是在中心服&#xff0c;客户端在宴会界面断开后&#xff0c;没有请求Info, 给客户端同步消息时&#xff0c;客户端已经断线&#xff0c;导致不一致&#xff0c;客户端连上后…

作者头像 李华