news 2026/1/22 23:54:26

小学生学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/1/20 11:55:29

实验(三)

实验目的&#xff1a;通过对目标靶机的渗透过程&#xff0c;了解CTF竞赛模式&#xff0c;理解CTF涵盖的知识范围&#xff0c;如MISC、PPC、WEB等&#xff0c;通过实践&#xff0c;加强团队协作能力&#xff0c;掌握初步CTF实战能力及信息收集能力。熟悉网络扫描、探测HTTP web服…

作者头像 李华
网站建设 2025/12/23 18:28:59

文件流详解、应用场景及代码案例(AI)

文件流&#xff08;File Stream&#xff09;是计算机编程中用于按顺序读写文件数据的一种抽象机制&#xff0c;它将文件的操作抽象为“流”的形式&#xff0c;数据如同水流一样从源&#xff08;文件&#xff09;到程序&#xff0c;或从程序到目标&#xff08;文件&#xff09;&…

作者头像 李华
网站建设 2026/1/4 15:37:04

CSP-J教程——第一阶段第九、十课:数组与字符串

课程目标 理解数组的概念和用途掌握一维数组的定义、初始化和访问学会数组遍历和经典应用掌握字符串的基本操作理解批量数据处理的思想为后续算法学习打下基础 第一部分&#xff1a;数组的概念&#xff08;40分钟&#xff09; 1.1 什么是数组&#xff1f; 生活比喻&#xff…

作者头像 李华
网站建设 2026/1/16 18:47:47

Windows文件资源管理器美化终极指南:5步实现Mica模糊效果

Windows文件资源管理器美化终极指南&#xff1a;5步实现Mica模糊效果 【免费下载链接】ExplorerBlurMica Add background Blur effect or Acrylic (Mica for win11) effect to explorer for win10 and win11 项目地址: https://gitcode.com/gh_mirrors/ex/ExplorerBlurMica …

作者头像 李华
网站建设 2026/1/5 16:49:45

大数据建模中的模型

在大数据建模中&#xff0c;“模型”一词通常指的是对数据结构、数据关系或数据行为的抽象表示。根据建模目的和应用场景的不同&#xff0c;可以将模型分为多种类型&#xff0c;常见的包括物理模型、概念模型、逻辑模型、理论模型、统计模型、机器学习模型、预测模型、仿真模型…

作者头像 李华
网站建设 2026/1/18 3:12:40

LangGraph入门指南:从零掌握大模型应用的状态管理与流程编排!

简介 文章介绍了LangGraph框架&#xff0c;这是一个专为构建复杂LLM应用设计的低层级编排框架。它通过State(状态)、Node(节点)和Edge(边缘)三个核心组件实现有状态、多步骤、长周期运行的Agent应用。LangGraph提供持久执行、动态控制流和人工介入等特性&#xff0c;支持分支、…

作者头像 李华