前言之前我们只用单个变量存数据比如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 菜单循环完成完整学生成绩管理系统巩固数组 分支 循环全套知识点。
企业数字化 ERP 产品动态
相关推荐
构建 Agent Harness:打造可靠 AI Agent 的核心控制层 Prompt Engineering、Context Engineering,以及现在的 Harness Engineering。
Prompt engineering 随着 2022 年底 ChatGPT 的发布进入公众视野,定义了与大型语言模型高效交互的方式。Context engineering 则在去年(2025 年)走到… · 2026/9/24 8:14:58
Windows系统wpsystem文件夹解析:安卓子系统数据管理与清理指南 1. 项目概述:揭开“wpsystem”文件夹的神秘面纱如果你在Windows电脑的某个磁盘根目录下,突然发现一个名为“wpsystem”的文件夹,并且它顽固地占据着不小的空间,还无法轻易删除,心里是不是会咯噔一下?这玩意… · 2026/9/22 15:49:50
Gemini Pro 2026实操指南:普通人如何用提示工程+本地化实现AI深度协作 1. 项目概述:这不是一次“升级”,而是一次重新校准人机协作坐标的实操2026年,Gemini Pro 已经不是新闻标题里的概念产品,而是像当年的智能手机一样,悄然嵌入日常工作的毛细血管里。我用它写周报、改合同条款、给老人写… · 2026/9/23 11:45:27
随机森林实战指南:用sklearn实现花分类并调优模型 简介:这是一份面向机器学习初学者的随机森林花分类实践代码包,聚焦鸢尾花品种预测这一经典案例,帮助读者理解集成学习原理、Bootstrap抽样机制及sklearn建模流程。压缩包体积仅1KB,内含1个Python源文件,可直接运行&… · 2026/9/24 19:06:49
epoll 为什么快?红黑树 + 就绪链表的设计哲学与实战避坑 做网络编程的人,大概率都背过这道面试题: “epoll 为什么快?因为用了红黑树 就绪链表。” 但说实话,我见过很多人能背出这两个数据结构的名词,却说不清楚它们各自到底承担什么职责、为什么偏偏选这两种结构… · 2026/9/24 19:06:37
2026(9.21-9.23)周报 推进《七秒记忆》娃娃用品电商平台项目,完成原型页面搭建与需求文档迭代优化,梳理项目整体业务框架,为后续开发工作打下基础。在原型设计方面,我使用墨刀完成项目网站基础页面原型搭建,重点设计平台首页。完成顶部导航… · 2026/9/24 19:06:37
电磁波原理到通信应用:从频谱规划到天线选型全解析 开篇:为什么你天天用着通信,却不认识电磁波手机打电话、连Wi-Fi刷视频、开车用导航、坐地铁刷卡……这些场景背后,真正干活的都是同一个东西——电磁波。电磁波这个概念从中学物理就开始出现,但说实话,我接触过不少通信… · 2026/9/24 19:06:37
epoll高性能底层解析:红黑树与就绪链表如何协作 先聊个我碰过的真实场景:线上有一台 8C16G 的服务器,需要同时维持几十万条 TCP 长连接,业务方希望每条连接都能在第一时间感知到数据可读、可写。最开始用 select 去顶,连接数刚到一万多就肉眼可见地出现延迟,CPU 软中… · 2026/9/24 19:06:37
基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程 简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为… · 2026/9/24 0:00:13
1D-CNN时间序列建模实战:从Conv1d原理到工业落地 简介:面向时间序列数据建模的一维卷积神经网络完整实现,适合深度学习入门者及需要快速验证时序模型的研究者,能够从音频、文本、传感器或股价等序列中挖掘局部特征与时间依赖。压缩包体积很小,只有3KB,内含3个Python脚… · 2026/9/24 0:00:26
柔软的L:汉语语流中被忽视的舌肌张力控制 1. 这个“L”不是字母表里的L,而是舌尖上的L最近在几个方言群和语音教学社群里,反复看到有人发一句:“也说字母L:柔软的长舌”。初看以为是英语发音课笔记,点开才发现全是方言爱好者、播音系学生、语言康复师甚至戏曲演… · 2026/9/24 0:00:44