《数组:让程序一下子记住一堆数据》
前言之前我们只用单个变量存数据比如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/27 4:42:55阅读更多 →
Windows系统wpsystem文件夹解析:安卓子系统数据管理与清理指南

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

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

2026/6/27 5:19:23阅读更多 →
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/27 3:26:23阅读更多 →
模拟电路实验板设计与教学实践解析

模拟电路实验板设计与教学实践解析

1. 模拟电路实验板的设计初衷与教学价值在电子工程专业的实验教学中,模拟电路实验板作为基础训练平台,其重要性不言而喻。济南大学电子实验室自主研发的这套实验装置,正是针对模电教学中"理论抽象、实践脱节"的痛点而设计的。相比市…

2026/6/27 14:15:43阅读更多 →
高精度电压电流基准源设计与工程实践

高精度电压电流基准源设计与工程实践

1. 项目背景与核心价值在电子测量领域,电压电流基准源就像一把标尺的刻度线,决定了整个测量系统的准确度上限。我十年前第一次接触六位半万用表校准工作时,就深刻体会到基准源质量对测量结果的决定性影响——当时由于使用了劣质基准&#xff…

2026/6/27 14:15:43阅读更多 →
18650电芯标识解析与品牌编码规则详解

18650电芯标识解析与品牌编码规则详解

1. 18650电芯标识解析基础18650电芯作为最常见的锂离子电池规格之一,其钢印或喷码承载着关键的身份信息。这些看似简单的字母数字组合,实际上是厂家预设的"身份密码",包含了容量、型号、生产批次等核心参数。不同品牌采用不同的编码…

2026/6/27 14:15:43阅读更多 →
还在用FindBugs?这4个新一代静态分析插件已让92%的Java团队淘汰旧工具

还在用FindBugs?这4个新一代静态分析插件已让92%的Java团队淘汰旧工具

更多请点击: https://intelliparadigm.com 第一章:还在用FindBugs?这4个新一代静态分析插件已让92%的Java团队淘汰旧工具 FindBugs 自 2016 年正式归档后,其技术栈已无法适配 Java 8 的新字节码特性与模块化系统,更缺…

2026/6/27 14:15:43阅读更多 →
电子元件基础:电源、电阻、电容原理与应用

电子元件基础:电源、电阻、电容原理与应用

1. 电子元件基础入门:电源、电阻、电容解析刚接触电子技术的朋友经常会遇到这样的困惑:电路板上那些五颜六色的小元件到底都是干什么用的?为什么有些元件发热严重,有些却始终保持冰凉?今天我们就来聊聊电子电路中最基础…

2026/6/27 14:15:43阅读更多 →
告别低效Prompt!IDEA中Copilot的12个精准指令模板(含Spring Boot、K8s YAML、JUnit5生成场景)

告别低效Prompt!IDEA中Copilot的12个精准指令模板(含Spring Boot、K8s YAML、JUnit5生成场景)

更多请点击: https://codechina.net 第一章:告别低效Prompt:Copilot在IDEA中的认知跃迁 传统 Prompt 工程依赖开发者手动构造冗长、模糊甚至语义冲突的指令,例如“写一个 Java 方法,处理空字符串并返回默认值”&#…

2026/6/27 14:10:42阅读更多 →
【人工智能】一文搞定到底什么是智能体

【人工智能】一文搞定到底什么是智能体

【人工智能】一文搞定到底什么是智能体 一文搞定到底什么是智能体【人工智能】一文搞定到底什么是智能体一. LM,WorkFlow,Agent分别有什么么不同二. Agent的思考过程是怎样的三. Agent的五个核心部分1)LLM2)Prompt3)Me…

2026/6/27 11:20:40阅读更多 →
嵌入式GUI控件实战:ROTARY、SCROLLBAR、SLIDER原理与应用

嵌入式GUI控件实战:ROTARY、SCROLLBAR、SLIDER原理与应用

1. 嵌入式GUI控件:从原理到实战的深度解析在嵌入式系统开发中,图形用户界面(GUI)的设计与实现往往是项目从“能用”到“好用”的关键一跃。不同于资源充沛的PC或移动平台,嵌入式设备的GUI需要在有限的CPU性能、内存空间…

2026/6/27 5:46:02阅读更多 →
Google AI Studio 300美元额度的真相与实战指南

Google AI Studio 300美元额度的真相与实战指南

1. 这300美金不是“送钱”,而是Google埋下的第一道技术门槛 你看到标题里那个醒目的“$300美金”时,第一反应可能是:又一个免费额度?领完就完事?我亲手试过——这300美金根本不是红包,而是一张入场券&…

2026/6/27 11:20:39阅读更多 →
10分钟AI语音克隆与实时变声:Retrieval-based-Voice-Conversion-WebUI完整指南

10分钟AI语音克隆与实时变声:Retrieval-based-Voice-Conversion-WebUI完整指南

10分钟AI语音克隆与实时变声&#xff1a;Retrieval-based-Voice-Conversion-WebUI完整指南 【免费下载链接】Retrieval-based-Voice-Conversion-WebUI Easily train a good VC model with voice data < 10 mins! 项目地址: https://gitcode.com/GitHub_Trending/re/Retrie…

2026/6/27 0:04:03阅读更多 →
Layerdivider:3分钟AI智能分层,彻底告别手动抠图时代

Layerdivider:3分钟AI智能分层,彻底告别手动抠图时代

Layerdivider&#xff1a;3分钟AI智能分层&#xff0c;彻底告别手动抠图时代 【免费下载链接】layerdivider A tool to divide a single illustration into a layered structure. 项目地址: https://gitcode.com/gh_mirrors/la/layerdivider 还在为复杂的图像分层工作烦…

2026/6/27 0:04:03阅读更多 →
Tomcat中X-Frame-Options配置实战:防御点击劫持的四种方法与最佳实践

Tomcat中X-Frame-Options配置实战:防御点击劫持的四种方法与最佳实践

1. 项目概述&#xff1a;为什么X-Frame-Options是Web安全的“防盗门”&#xff1f;最近在排查一个老项目的安全审计报告时&#xff0c;又被提到了“点击劫持”风险&#xff0c;矛头直指缺失的X-Frame-Options响应头。这已经不是第一次了&#xff0c;很多开发团队&#xff0c;尤…

2026/6/27 0:04:03阅读更多 →