《C程序设计》课程电子教案(PPT课件)第四章 数组和结构

第四章数组和结构 ◆一维数组 ◆字符数组 ◆结构 ◆结构数组和二维数组 令程序举例 ◆本章小结
❖ 一维数组 ❖ 字符数组 ❖ 结构 ❖ 结构数组和二维数组 ❖ 程序举例 ❖ 本章小结 第四章 数组和结构

4.1—维数组 一维数组的定义和初始化 维数组元素的引用 一维数组的应用
4.1 一维数组 ➢ 一维数组的定义和初始化 ➢ 一维数组元素的引用 ➢ 一维数组的应用

4.1一维数组 任务4.1半期考试结束了,教师想看看C语言这门课程的最高 分,以及有哪几位学生得到了这个最高分。试编程解决这个问 题,为简单起见,假设班上共有10人 算法分析: 首先需解决学生成绩的存储问题 可以用10个变量,分别取名为 scorel, score2,……core0来 存储10名学生的成绩,但程序扩展性很差 使用一个包含10个元素的数组,将每位学生的成绩存储到相应 的数组元素中 (a)不同的变量 (b)一个数组
4.1 一维数组 任务4.1 半期考试结束了,教师想看看C语言这门课程的最高 分,以及有哪几位学生得到了这个最高分。试编程解决这个问 题,为简单起见,假设班上共有10人。 算法分析: 首先需解决学生成绩的存储问题 可以用10个变量,分别取名为score1,score2,……,score10来 存储10名学生的成绩, 但程序扩展性很差 使用一个包含10个元素的数组,将每位学生的成绩存储到相应 的数组元素中

4.1.1一维数组的定义及初始化 1.数组的声明 dd- score「0l 类型说明符数组名[常量表达式] dd+4 score「1l ①类型说明符定义数组的基类型,即数狠中各-3 score「21 ②数组名的第一个字符最好为英文字母,其他 add+12 score「3l add+16 score[ 41 名时相同。 add+20 score「51 ③常量表达式定义数组中可以放多少元素。必a2+66 ④用方括号将常量表达式括起。 dd+28 score[71 ⑤数组下标从0开始。如果定义了10个元素,是 ad+32 score「8l 到第9个元素。 dd-36 score 91 ⑥常量表达式中不允许包含变量,但可以使用 图4-1-2 score数组 int score[10] int n-10, int score Inl const int n=10, int score [nI
4.1.1 一维数组的定义及初始化 1. 数组的声明 类型说明符 数组名[常量表达式]; ① 类型说明符定义数组的基类型,即数组中各元素的类型。 ② 数组名的第一个字符最好为英文字母,其他要求与定义变量 名时相同。 ③ 常量表达式定义数组中可以放多少元素。必须是整型常量。 ④ 用方括号将常量表达式括起。 ⑤ 数组下标从0开始。如果定义了10个元素,是从第0个元素 到第9个元素。 ⑥ 常量表达式中不允许包含变量,但可以使用常变量。 int score[10]; int n=10; int score[n]; const int n=10; int score[n];

4.1.1一维数组的定义及初始化 2.数组元素的初始化 (1)给全部数组元素赋初值 int score[3]={78,89,98} (2)给部分数组元素赋初值 int score[5]={78,89,98}; (3)赋初值个数与数组长度 int scorel]={78,89,98} 注意:初值的个数不能超过数组长度 int scoref2]={78,89,98}
4.1.1 一维数组的定义及初始化 2. 数组元素的初始化 (1)给全部数组元素赋初值 int score[3] = {78, 89, 98}; (2)给部分数组元素赋初值 int score[5] = {78, 89, 98}; (3)赋初值个数与数组长度 int score[] = {78, 89, 98}; 注意:初值的个数不能超过数组长度 int score[2] = {78, 89,98};

4.12一维数组元素的引用 维数组下标变量的格式 数组名[下标] 例如: int score[10=0, 1=1 score scoreline score[10] 注意:C语言不检查数组边界,程序可以在数组两边越界,写入 其他变量,甚至写入程序代码段。如果使用了负数下标或超 过数组长度的下标,C仍计算这个下标的位置,并使用它 在运行和编译时也没有任何错误提示,程序继续运行,并访 问别的变量的存储空间或根本不存在的存储空间
4.1.2 一维数组元素的引用 一维数组下标变量的格式 数组名[下标] 例如: int score[10]={0}, i=1; score[1]; score[i]; score[10]; 注意:C语言不检查数组边界,程序可以在数组两边越界,写入 其他变量,甚至写入程序代码段。如果使用了负数下标或超 过数组长度的下标,C仍计算这个下标的位置,并使用它, 在运行和编译时也没有任何错误提示,程序继续运行,并访 问别的变量的存储空间或根本不存在的存储空间

4.13一维数组的应用 Ca. C: \windows\ system32\cmd.exe 任务4.1算法分析 晴输入第0位学生的成绩:39 先用键盘输入10位学生的请输入第1位学生的成绩:95 成绩,分别存放到coe请输入第2位学生的成绩:78 数组的相应下标变量中, 输入第3位学生的成绩:86 并找出最高分, 请输入第4位学生的成绩:89 请输入第5位学生的成绩:98 然后再依次将10位学生的请入第6位学生的成绩:83 成绩与最高分比较,输出输入第7位学生的成绩:98 请输入第8位学生的成绩:78 得分为最高分的学生的序请输入第9位学生的成绩:98 号 本班最高分为98 最后输出获得最高分的学得到最高分的学生序号为 生人数。 5 9 共有3位学生得到最高分 请按任意键继续
4.1.3 一维数组的应用 任务4.1算法分析 • 先用键盘输入10位学生的 成绩,分别存放到score 数组的相应下标变量中, 并找出最高分, • 然后再依次将10位学生的 成绩与最高分比较,输出 得分为最高分的学生的序 号, • 最后输出获得最高分的学 生人数

4.13一维数组的应用 任务4.1程序4_1.cpp 初始化最高分3060 变量定义及数组元素输入 初始化最高分学生数 max Student=0 const int n=10使倍变量定议学生人数 int score[n] /成输笔组位学的盈元索 int maxScore=0;//串,到剂 int max Student =0 到最高分的学生大数 是 int 1. 自环示量 maxScore=score[i] for(i=0: i scoreline:/第学倒的减绩 if(maxScore< score[ilE 是 //如果第位学生的成绩高于原最量雷学生数增1 maxScore= score[il;// 改李生序号1 //结束循环输出最高分学生数
任务4.1 程序4_1.cpp 变量定义及数组元素输入 const int n = 10; // 使用常变量定义学生人数 int score[n]; // 定义成绩数组,有n个整型元素 int maxScore = 0; // 最高分,并初始化为0 int maxStudent = 0; // 得到最高分的学生人数 int i; // 循环变量 for(i = 0; i >score[i]; // 输入第i位学生的成绩 if(maxScore < score[i]) { // 如果第i位学生的成绩高于原最高分 maxScore = score[i]; // 修改最高分 } } // 结束循环 4.1.3 一维数组的应用

4.13一维数组的应用 任务4.1程序4_1.cpp 初始化最高分3060 求最高分人数 初始化最高分学生数 max Student=0 for(i=0: imaxScore /如了学生的成绩等于最高分 是 maxStt+ cout<<i<<e 输出该生序号420e1 输出最高分 生 cout“共有” KmaxStuder,生得到最庸分g 是 最高分学生数增1 输出学生序号i 输出最高分学生数
4.1.3 一维数组的应用 任务4.1 程序4_1.cpp 求最高分人数 for(i = 0; i < n; i++) // 计数循环 { // 循环开始 if(score[i] == maxScore) { // 如果第i位学生的成绩等于最高分 maxStudent++; // 得最高分的学生人数增1 cout<<i<<endl; // 输出该生序号 } } // 循环结束 cout<<"共有"<<maxStudent<<"位学生得到最高分"<<endl;

4.13一维数组的应用 例4.1有10位学生的成绩存放在数组 score中,从键盘输入1个 数,查找这个成绩是否在数组中,如果在,输出其下标, 如果不在,输出0。数组的下标表示第位学生的成绩,数 组的下标0处不存储成绩。 Gi. C:\windows\system32\cmd. exe 学生成绩:808284889092949698 请输入待查找的学生成绩:90 查找成功,待查找成绩是第6位同学的成绩 请按任意键继续
4.1.3 一维数组的应用 例4.1 有10位学生的成绩存放在数组score中,从键盘输入1个 数,查找这个成绩是否在数组中,如果在,输出其下标, 如果不在,输出0。数组的下标i表示第i位学生的成绩,数 组的下标0处不存储成绩。 算法分析: • 将第i位学生的成绩存放到下标i处,下标0处的数组元素就 不存放具体的成绩信息。这样,学生的序号和数组下标之 间的对应关系更自然 • 可采用计数循环,依次将数组元素与输入的数进行比较, 如果相等则终止循环。如果元素比较完还未找到输入的数, 则输出0
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 山东大学:《人机交互技术》课程教学资源(PPT课件讲稿)第4章 人机交互技术.ppt
- 基于分布式哈希表的对等系统关键技术研究(论文PPT).ppt
- 西安交通大学:《微型计算机硬件技术》课程教学资源(PPT课件讲稿)第三章 总线线驱动与接口(主讲:桂小林).ppt
- 电子科技大学:《信息安全概论》课程教学资源(PPT课件讲稿)第一章 概述(秦志光).ppt
- 《计算机网络》课程教学资源(PPT课件讲稿)第7章 广域网.ppt
- 《电子技术》课程教学资源(PPT讲稿资料)玩转Arduino合集.ppt
- 《数字图像处理》课程教学资源(PPT课件)第三章 灰度直方图.ppt
- 《机器学习》课程教学资源(PPT课件讲稿)第十三章 半监督学习.pptx
- 《C语言程序设计》课程教学资源(PPT课件讲稿)第三章 控制语句.ppt
- 山东大学:《微机原理及单片机接口技术》课程教学资源(PPT课件讲稿)第四章 指令系统及汇编语言程序设计(4.9-4.11).ppt
- 《计算机硬件基础》课程教学资源(PPT课件讲稿)第六章 汇编语言及其程序设计.ppt
- 中国科学技术大学:《网络信息安全 NETWORK SECURITY》课程教学资源(PPT课件讲稿)第一章 计算机网络安全概述2/2(主讲:肖明军).ppt
- 清华大学:Computational Models for Social Network Analysis(PPT讲稿)mining big social networks(Part III:Group and Structure).pptx
- 苏州大学:文档评分与向量空间模型(PPT讲稿).ppt
- 淮阴工学院:《数据库原理》课程教学资源(PPT课件讲稿)第2章 数据库系统结构.ppt
- 四川大学:《操作系统 Operating System》课程教学资源(PPT课件讲稿)Chapter 5 互斥与同步(Mutual Exclusion and Synchronization)5.3 Semaphores.ppt
- 《编译原理》课程教学资源(PPT课件讲稿)第五章 语法制导的翻译 5.1 语法制导的定义 5.2 S属性定义的自下而上计算.ppt
- 《数字图像处理》课程教学资源(PPT课件讲稿)第7章 图像分割.ppt
- 《人工智能》课程电子教案(PPT课件讲稿)第9章 机器学习与知识发现.ppt
- 赣南师范大学:《计算机网络原理》课程教学资源(PPT课件讲稿)第七章 网络层.ppt
- 华东师范大学:《程序设计》课程教学资源(PPT课件讲稿)第九讲 类与对象(面向对象基础).pptx
- 《计算机视觉》课程教学资源(PPT课件讲稿)第十二章 目标识别 Object Recognition.ppt
- 南京大学:《面向对象技术 OOT》课程教学资源(PPT课件讲稿)引言、背景概述.ppt
- 《数据结构》课程教学资源(PPT课件讲稿)第3章 栈和队列.ppt
- 中国科学技术大学:《计算机体系结构》课程教学资源(PPT课件讲稿)第4章 存储层次结构设计.ppt
- 东南大学:《数据结构》课程教学资源(PPT课件讲稿)分治算法.pptx
- 《电子商务实用教程》课程教学资源(PPT课件讲稿)第五章 物流配送.ppt
- 广西医科大学:《计算机网络 Computer Networking》课程教学资源(PPT课件讲稿)CHAPTER 9 COMMUNICATIONS CIRCUITS.pptx
- 安徽理工大学:《汇编语言》课程教学资源(PPT课件讲稿)第三章 80x86指令系统和寻址方式.ppt
- 机械工业出版社:国家“十一五”规划教材《数据库原理与应用教程》教学资源(PPT课件,第3版)第8章 数据库设计.ppt
- 《大学计算机》实践教程(PPT讲稿)面向计算思维能力培养(Raptor程序设计).pptx
- 南京航空航天大学:《数据结构》课程教学资源(PPT课件讲稿)第一章 绪论.ppt
- 《数字图像处理学》课程教学资源(PPT课件讲稿)第9章 数学形态学及其应用.ppt
- 东南大学:《操作系统概念 Operating System Concepts》课程教学资源(PPT课件讲稿)04 线程 Threads.ppt
- 《计算机视觉》课程教学资源(PPT课件)第八章 基于运动视觉的稠密估计——光流法(Optical Flow).ppt
- 中国科学技术大学:《算法基础》课程教学资源(PPT课件讲稿)第八讲 串匹配算法(主讲:顾乃杰).ppt
- 中国科学技术大学:《信号与图像处理基础 Signal and Image Processing》课程教学资源(PPT课件讲稿)图像成像机理与模型.pptx
- 数据包检测技术(PPT讲稿)High-Performance Pattern Matching for Intrusion Detection.ppt
- 《计算机操作系统》课程教学资源(PPT课件讲稿)第8章 计算机系统的测试.ppt
- 西北农林科技大学:高性能计算之并行编程技术(讲座PPT,报告人:周兆永).ppt