《数组:让程序一下子记住一堆数据》
前言之前我们只用单个变量存数据比如int num1, num2, num3;。 如果要存储 50 个学生的成绩、20 个商品价格难道要手动定义 50 个变量代码会又臭又长完全没法维护。分支if/switch让程序会做选择循环for/while让程序重复干活而数组就是程序用来批量存放同类数据的 “收纳盒”。 有了数组我们不用一堆零散变量一行代码就能存几十上百个数据搭配循环遍历处理批量数据事半功倍。一、什么是一维数组1.1 基础定义语法数据类型 数组名[存储个数];通俗解释数据类型规定盒子里只能放同一种东西int 只能存整数、char 只能存字符数组名这个收纳盒的名字和变量命名规则一样[]里的数字这个盒子最多能装多少个数据示例// 能存放10个整数成绩的数组 int score[10]; // 能存放8个身高小数的数组 float height[8];1.2 数组下标核心规则新手必踩坑点数组里每一个格子都有编号这个编号叫做下标 ✅ 下标从0开始计数 长度为 5 的数组下标范围0、1、2、3、4❌ 不能使用下标 5会出现数组越界读取到乱码1.3 一维数组 3 种初始化写法// 写法1全部元素赋值 int arr1[5] {1,2,3,4,5}; // 写法2只给部分元素赋值剩下自动补0 int arr2[5] {10,20}; // 等价 {10,20,0,0,0} // 写法3省略长度编译器自动统计元素个数 int arr3[] {2,4,6,8}; // 数组长度自动为4二、数组 for 循环批量处理数据手动一个个打印数组元素非常麻烦for循环专门用来遍历数组所有下标一键读取全部数据。实战代码 1遍历打印全班成绩#include stdio.h int main() { // 存储5名学生成绩 int score[5] {85, 92, 78, 96, 66}; // i代表数组下标从0循环到4 for(int i 0; i 5; i) { printf(第%d名学生成绩%d\n, i1, score[i]); } return 0; }运行输出第1名学生成绩85 第2名学生成绩92 第3名学生成绩78 第4名学生成绩96 第5名学生成绩66实战代码 2输入成绩计算总分、平均分结合之前学的分支、循环、数组三合一综合案例#include stdio.h int main() { int score[5]; int sum 0; double avg; // 循环录入5个成绩存入数组 for(int i 0; i 5; i) { printf(请输入第%d位学生成绩, i1); scanf(%d, score[i]); sum score[i]; } avg sum / 5.0; printf(\n班级总分%d平均分%.2f\n, sum, avg); // if分支判断班级成绩是否合格 if(avg 60) { printf(班级平均成绩合格); } else { printf(班级平均分不及格需要加强练习); } return 0; }三、字符数组存放文字的数组int 数组存数字char字符数组专门存放单个文字、字母、符号是字符串的底层基础。3.1 字符数组基础用法#include stdio.h int main() { // 定义长度为6的字符数组存放5个字母 char ch[6] {H,e,l,l,o}; // 循环打印每个字符 for(int i 0; i 5; i) { printf(%c, ch[i]); } return 0; }输出结果Hello3.2 朴素认识字符串上面逐个写字符太麻烦C 语言给字符数组简化写法直接放一段文字这就是字符串// 简化写法等价 char str[6] {H,e,l,l,o,\0}; char str[6] Hello; 关键知识点 双引号包裹的文字会自动在末尾隐藏一个结束标记\0用来告诉程序文字到此结束。 我们平时写的文字、姓名、账号本质全是带\0的字符数组。3.3 字符串快速输入输出示例#include stdio.h int main() { char name[20]; // 最多存19个汉字/字母留1位给\0 printf(请输入你的名字); scanf(%s, name); // 字符串输入不用加 printf(你输入的名字是%s, name); return 0; }四、新手高频踩坑总结 ⚠️下标越界数组长度为 5只允许使用 0~4访问 arr [5] 会读取内存垃圾程序异常下标从 0 开始不要习惯性把循环起始值写成 1会漏掉第一个数据数组类型统一int 数组只能存数字char 数组只能存字符不能混合存放字符串预留结束位存放 Hello 至少要开辟长度 6 的字符数组给\0留位置下期预告下一篇专栏文章讲解二维数组实现多科目成绩存储、矩阵打印结合 while 菜单循环完成完整学生成绩管理系统巩固数组 分支 循环全套知识点。

相关新闻

构建 Agent Harness:打造可靠 AI Agent 的核心控制层

构建 Agent Harness:打造可靠 AI Agent 的核心控制层

Prompt Engineering、Context Engineering,以及现在的 Harness Engineering。 Prompt engineering 随着 2022 年底 ChatGPT 的发布进入公众视野,定义了与大型语言模型高效交互的方式。Context engineering 则在去年(2025 年)走到…

2026/6/18 1:15:31阅读更多 →
Windows系统wpsystem文件夹解析:安卓子系统数据管理与清理指南

Windows系统wpsystem文件夹解析:安卓子系统数据管理与清理指南

1. 项目概述:揭开“wpsystem”文件夹的神秘面纱如果你在Windows电脑的某个磁盘根目录下,突然发现一个名为“wpsystem”的文件夹,并且它顽固地占据着不小的空间,还无法轻易删除,心里是不是会咯噔一下?这玩意…

2026/6/18 1:15:31阅读更多 →
3步快速解决华硕笔记本色彩配置文件丢失问题:G-Helper免费修复指南

3步快速解决华硕笔记本色彩配置文件丢失问题:G-Helper免费修复指南

3步快速解决华硕笔记本色彩配置文件丢失问题:G-Helper免费修复指南 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar, ProArt, Vivobook,…

2026/6/18 1:10:30阅读更多 →
Node.js爬虫技术革命:x-crawl如何用AI解决90%的动态网页采集难题

Node.js爬虫技术革命:x-crawl如何用AI解决90%的动态网页采集难题

Node.js爬虫技术革命:x-crawl如何用AI解决90%的动态网页采集难题 【免费下载链接】x-crawl Flexible Node.js AI-assisted crawler library 项目地址: https://gitcode.com/gh_mirrors/xc/x-crawl 在当今数据驱动的商业环境中,企业每天需要处理超…

2026/6/18 2:25:35阅读更多 →
Visual C++运行库终极解决方案:AIO一键修复Windows程序运行问题

Visual C++运行库终极解决方案:AIO一键修复Windows程序运行问题

Visual C运行库终极解决方案:AIO一键修复Windows程序运行问题 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是否遇到过打开游戏时提示"找不…

2026/6/18 2:25:35阅读更多 →
客户流失预警模型:RFM+行为数据的算法实现

客户流失预警模型:RFM+行为数据的算法实现

为什么你的流失预警总是"事后诸葛亮"做了这么多年客户成功系统,我发现一个很普遍的问题:很多企业上了一套BI系统,能看到客户过去三个月的数据报表,但到了预测客户会不会流失的时候,还是靠"经验"判…

2026/6/18 2:25:35阅读更多 →
知识管理终极指南:5个技巧让你在Knowledge Repo中高效使用标签系统组织内容

知识管理终极指南:5个技巧让你在Knowledge Repo中高效使用标签系统组织内容

知识管理终极指南:5个技巧让你在Knowledge Repo中高效使用标签系统组织内容 【免费下载链接】knowledge-repo A next-generation curated knowledge sharing platform for data scientists and other technical professions. 项目地址: https://gitcode.com/gh_mi…

2026/6/18 2:25:35阅读更多 →
3分钟了解:如何用openpilot开源系统让你的汽车秒变智能驾驶座驾

3分钟了解:如何用openpilot开源系统让你的汽车秒变智能驾驶座驾

3分钟了解:如何用openpilot开源系统让你的汽车秒变智能驾驶座驾 【免费下载链接】openpilot openpilot is an operating system for robotics. Currently, it upgrades the driver assistance system on 300 supported cars. 项目地址: https://gitcode.com/GitHu…

2026/6/18 2:25:35阅读更多 →
常用类的概念.

常用类的概念.

常用类一、Object类1. Object类的介绍(1) Object类位于java.lang包中,是继承关系的根类、超类,是所有类的父类(直接的父类或是间接父类) (2) Object类型的引用可以用于存储任意类型的对象。 (3) Object类中定义方法,所有类都可以直接使用。2.…

2026/6/18 2:20:35阅读更多 →
ZigBee HA智能家居开发实战:从集群模型到NXP JN516x代码实现

ZigBee HA智能家居开发实战:从集群模型到NXP JN516x代码实现

1. ZigBee HA:智能家居的“通用语言”与开发基石如果你正在或计划踏入智能家居设备开发领域,尤其是基于ZigBee协议,那么“ZigBee Home Automation”这个名词你一定不陌生。它不仅仅是ZigBee联盟定义的一套应用层规范,更是确保不同…

2026/6/18 0:00:24阅读更多 →
Java毕设选题推荐:基于 Spring Boot 的个人随笔博客运维管理系统的设计与实现 基于 Spring Boot 的用户原创博客分享社区【附源码、mysql、文档、调试+代码讲解+全bao等】

Java毕设选题推荐:基于 Spring Boot 的个人随笔博客运维管理系统的设计与实现 基于 Spring Boot 的用户原创博客分享社区【附源码、mysql、文档、调试+代码讲解+全bao等】

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/6/18 0:00:24阅读更多 →
JN517x嵌入式开发实战:看门狗、脉冲计数器与I2C接口的深度解析与避坑指南

JN517x嵌入式开发实战:看门狗、脉冲计数器与I2C接口的深度解析与避坑指南

1. 项目概述在嵌入式开发领域,尤其是基于NXP JN517x这类无线微控制器的项目中,系统稳定性和与外设的可靠交互是两大核心挑战。前者关乎产品能否在无人值守的复杂环境中长期运行,后者则决定了设备能否准确感知世界并与其他芯片“对话”。JN517…

2026/6/18 0:00:24阅读更多 →