![计算机程序设计:第9讲数组(上)_第1页](http://file3.renrendoc.com/fileroot_temp3/2022-3/2/24cd9f90-b416-41f2-acfd-f2a91d314b89/24cd9f90-b416-41f2-acfd-f2a91d314b891.gif)
![计算机程序设计:第9讲数组(上)_第2页](http://file3.renrendoc.com/fileroot_temp3/2022-3/2/24cd9f90-b416-41f2-acfd-f2a91d314b89/24cd9f90-b416-41f2-acfd-f2a91d314b892.gif)
![计算机程序设计:第9讲数组(上)_第3页](http://file3.renrendoc.com/fileroot_temp3/2022-3/2/24cd9f90-b416-41f2-acfd-f2a91d314b89/24cd9f90-b416-41f2-acfd-f2a91d314b893.gif)
![计算机程序设计:第9讲数组(上)_第4页](http://file3.renrendoc.com/fileroot_temp3/2022-3/2/24cd9f90-b416-41f2-acfd-f2a91d314b89/24cd9f90-b416-41f2-acfd-f2a91d314b894.gif)
![计算机程序设计:第9讲数组(上)_第5页](http://file3.renrendoc.com/fileroot_temp3/2022-3/2/24cd9f90-b416-41f2-acfd-f2a91d314b89/24cd9f90-b416-41f2-acfd-f2a91d314b895.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1 第9讲 数组(上)2 快速学习C+的途径3 -C+语言数据类型语言数据类型老子曰:道生一、一生二、二生三、三生万物老子曰:道生一、一生二、二生三、三生万物基本类型基本类型构造类型构造类型指针类型指针类型空类型空类型整型整型 字符型字符型实型实型 枚举类型枚举类型(浮点型浮点型)单精度型单精度型 双精度型双精度型数组类型数组类型 结构体类型结构体类型 共用体类型共用体类型数据类型数据类型4 普遍规则l学习一种新的数据类型时,需要问自己问自己如下问题 如何定义 如何初始化 如何引用 为什么要引入该数据类型为什么要引入该数据类型?5 本讲主要内容l为什么要引入数组?l一维数组定义、初始化和引用l
2、二维数组定义、初始化和引用l程序的调试方法*参考教材的第5.1-5.3节6 9.1 为啥要引入数组为啥要引入数组p话说上回犀利哥在家借酒浇愁,愤愤自语话说上回犀利哥在家借酒浇愁,愤愤自语:“:“哥喝哥喝的不是酒而是寂寞的不是酒而是寂寞”。然而。然而“神马都是浮云神马都是浮云”,悲,悲愤之后便是喜悦。天仙妹伤好出院,犀利哥欢天喜愤之后便是喜悦。天仙妹伤好出院,犀利哥欢天喜地。为了表示庆贺,决定从家里地。为了表示庆贺,决定从家里10001000只羊群中选一只羊群中选一只最肥的羊宴请天仙妹妹。再然而只最肥的羊宴请天仙妹妹。再然而, ,犀利哥由喜变愁犀利哥由喜变愁: :如何记录每只羊的重量呢如何记录每
3、只羊的重量呢? ? 需要定义需要定义10001000个变量个变量(a1,a2.)(a1,a2.)吗吗? ? 如何找到最肥的羊呢?如何找到最肥的羊呢?p分析:分析:(1 1)如何表示相同类型的序列数据;)如何表示相同类型的序列数据;(2 2)如何实现)如何实现10001000次比较操作?次比较操作?7 max = 0.0; 将记录最重的羊的重量置0 for ( i=0; i1000; i=i+1 ) 提示输入第i 只羊的重量; 键入第i 只羊的重量 sheepi; max sheepi 是 否 max = sheepi; k = i; 存重者,记录第i 只。 输出 max ( 最重的羊的重量 )
4、 输出 k ( 最重的羊是第k 只 ) 实例:用键盘输入实例:用键盘输入1000只羊的重量,并找出最大的羊只羊的重量,并找出最大的羊生活小常识生活小常识如果你去食堂买如果你去食堂买4样样菜,是使用独立菜,是使用独立4只只碗,还是用一个有碗,还是用一个有4个坑位的盘子?个坑位的盘子?8 #include #include Int main()Int main()float sheep1000; float sheep1000; /数组定义数组定义, ,相当于定义相当于定义10001000个变量个变量 float max; float max;int i,k; int i,k; max=0.0;
5、max=0.0; for ( i=0; i1000; i=i+1 ) for ( i=0; i1000; i=i+1 ) printf(“printf(“请输入羊的重量请输入羊的重量sheep%d=”, i);sheep%d=”, i); scanf(“%f”, &(sheepi); scanf(“%f”, &(sheepi); /数组的使用数组的使用, ,元素单个使用元素单个使用if ( max if ( max sheepisheepi ) ) max = sheepi; max = sheepi; /数组的使用数组的使用 k=i;k=i; /数组的使用数组的使用print
6、f(“max=%fn”, max);printf(“max=%fn”, max);printf(“number=%dn”, k);printf(“number=%dn”, k);return 0return 0; p 提问:提问:如不用数组,程序如何写?独立定义如不用数组,程序如何写?独立定义1000个变量是个变量是否可以用循环结构?否可以用循环结构?9 9.1、数组的定义、数组的定义l数组的定义:数组的定义:类型说明符类型说明符数组名数组名 常量表达式常量表达式 l例:例:float sheep10; /float sheep10; /相当于定义了相当于定义了1010个变量;个变量; int
7、 a5; / int a5; /相当定义了相当定义了a0, a1, a2, a3, a4l说明说明 数组名的第一个字符应为英文字母;数组名的第一个字符应为英文字母; 用方括号将用方括号将常量表达式常量表达式括起;括起; 常量表达式定义了数组元素的个数;常量表达式定义了数组元素的个数; 定义形式的常量表达式中不允许包含变量定义形式的常量表达式中不允许包含变量;l例如例如 int n;int n; n = 5; n = 5;int an;int an;不合法!不合法! a 下标下标 0 1 2 3 4 10 9.1、数组的定义、数组的定义n数组的本质特征数组的本质特征300301302298299
8、11 9.2、数组的引用、数组的引用nC+C+语言规定,不能引用整个数组,只能逐个引用语言规定,不能引用整个数组,只能逐个引用元素,元素引用方式:元素,元素引用方式:数组名数组名 下标下标 n在引用时表达式中可以包含变量在引用时表达式中可以包含变量n 例例 使数组元素使数组元素a0a0a9a9的值为的值为0 09 9,然后逆,然后逆序输出序输出int main()int i,a10; /数组的定义 for (i=0;i=0; i-) printf(%d ,ai);p 数组的奥秘之处就是可采数组的奥秘之处就是可采用循环变量通过下标来引用循环变量通过下标来引用数组元素用数组元素12 n初始化初始化
9、: :在定义时指定初始值,编译器把初值赋给数组变量在定义时指定初始值,编译器把初值赋给数组变量n赋值赋值: :在程序运行时,使用赋值语句把值赋给数组变量,如在程序运行时,使用赋值语句把值赋给数组变量,如a0 = 2a0 = 2 a 3 5 4 1 2 下标下标 0 1 2 3 4 13 9.3、数组的初始化、数组的初始化l一般初始化,例:一般初始化,例:int a10 = 0,1,2,3,4,5,6,7,8,9int a10 = 0,1,2,3,4,5,6,7,8,9; l部分元素初始化,例:部分元素初始化,例:int a10 = 0,1,2,3,4int a10 = 0,1,2,3,4;仅前
10、仅前5 5个元素赋初值,后面默认为个元素赋初值,后面默认为0 0l全部元素均初始化为全部元素均初始化为0 0int a10 = 0,0,0,0,0,0,0,0,0,0;int a10 = 0,0,0,0,0,0,0,0,0,0;注意:不给数组指定初始值时,编译器作如下处理:注意:不给数组指定初始值时,编译器作如下处理:(1 1)编译器自动把静态数组的各元素初始化为)编译器自动把静态数组的各元素初始化为0 0。(2 2)编译器不为动态数组自动指定初始值。)编译器不为动态数组自动指定初始值。 l如果全部元素均指定初值,定义中可省略元素个数:如果全部元素均指定初值,定义中可省略元素个数: int a
11、5 = 1,2,3,4,5; int a5 = 1,2,3,4,5;可以写为:可以写为:int a = 1,2,3,4,5; int a = 1,2,3,4,5; 14 9.3、数组的初始化、数组的初始化算法重点:对比算法重点:对比Fibonacci3种解法:递推法、递归法和数组法种解法:递推法、递归法和数组法15 2.4.5逻辑运算符和逻辑表达式逻辑运算符和逻辑表达式(回顾)(回顾)16 应用举例l穷举法17 应用举例注意:编译链接成功不等于没有语法错误注意:编译链接成功不等于没有语法错误18 火眼金睛查错误19 应用举例20 附:程序的调试21 逐语句调试:F1122 逐语句调试:F112
12、3 逐语句调试:F1124 逐语句调试:F1125 逐语句调试:F1126 逐语句调试:F1127 9.4 二维数组提问:编写程序完成提问:编写程序完成a*b,怎么办怎么办?如何表示如何表示a 和和b?28 9.4 二维数组p定义形式: 类型说明符 数组名常量表达式常量表达式p例:例:int a23;int a23; a a为为2 23(23(2行行3 3列列) )的数组,共的数组,共6 6个个元素元素p注意:排列(存储)顺序,先列注意:排列(存储)顺序,先列后行后行p下标变化,下标变化,即二维数组中元素的即二维数组中元素的引用引用29 9.4 三维数组p三维数组:三维数组:float a23
13、4float a234在内存中的存放顺序在内存中的存放顺序:a000a001a002a003a010a011a012a013a020a021a022a023a100a101a102a103a110a111a112a113a120a121a122a12330 9.4 二维数组的初始化p分行赋值如:int a34=1,2,3,4,5,6,7,8,9,10,11,12;p全部数据写在一个大括号内如:static int a34=1,2,3,4,5,6,7,8,9,10,11,12;p部分元素赋值如:static int a34=1,5,9;仅对a00、a10、a20赋值,其余元素未赋值(对于静态数组
14、,编译器自动为未赋值元素指定初值0。p如果对全部元素赋初值,则第一维的长度可以不指定,但必须指定第二维的长度如:static int a34=1,2,3,4,5,6,7,8,9,10,11,12;与下面定义等价:static int a 4=1,2,3,4,5,6,7,8,9,10,11,12;31 9.4二维数组的二维数组的应用举例应用举例l 例例 将一个二维数组行和列交换,存到将一个二维数组行和列交换,存到另一个二维数组中。例如另一个二维数组中。例如32 9.4二维数组的二维数组的应用举例应用举例33 断点调试:F534 断点调试:F535 断点调试:F536 9.4二维数组的二维数组的应
15、用举例应用举例l例有一个34的矩阵,要求编程序以求出其中值最大的那个元素的值及其所在的行号和列号。l算法:“打擂台”,首先把第一个元素a00作为临时最大值max,然后把临时最大值max与每一个元素aij进行比较,若aijmax,把aij作为新的临时最大值,并记录下其下标i和j。当全部元素比较完后,max是整个矩阵全部元素的最大值37 9.4二维数组的二维数组的应用举例应用举例38 9.4二维数组的二维数组的应用举例应用举例39 本讲重点l数组的内涵:整体定义、连续存储(地址表示)、逐个引用(循环语句)l数组的定义和引用格式l数组解题思路l逐过程和断点调试的使用方法40 第8次实验练习l本次共本
16、次共2 2题。提交截止时间为第题。提交截止时间为第1111周末。周末。l第第1 1题:犀利哥故事之十一:题:犀利哥故事之十一:喜结良缘喜结良缘 话说犀利哥对天仙妹妹的一片真情,终于打动了天仙妹话说犀利哥对天仙妹妹的一片真情,终于打动了天仙妹妹及其父母。妹及其父母。“金诚所致,金石为开金诚所致,金石为开”。父母同意不要。父母同意不要彩礼了,只求得有一个良辰吉日,将两人的婚礼给办了彩礼了,只求得有一个良辰吉日,将两人的婚礼给办了。犀利哥非常感动,决定从。犀利哥非常感动,决定从199199只羊中挑出最大只羊中挑出最大1010只,送只,送给岳父岳母。如何选拔这给岳父岳母。如何选拔这1010只最肥的羊,
17、请同学帮忙使只最肥的羊,请同学帮忙使用至少用至少2 2种不同算法编程。种不同算法编程。提示提示: :羊的重量可以采用随机羊的重量可以采用随机函数函数RAND()RAND()来产生来产生 另外:使用断点调试,截获保存另外:使用断点调试,截获保存“最大最大1010只羊只羊”数组的数组的调试窗口图,并在作业中提交调试窗口图,并在作业中提交41 网络版的函数使用说明网络版的函数使用说明百度百度查找查找42 联机帮助版函数使用说明联机帮助版函数使用说明帮助帮助索引索引查找查找43 第8次实验练习第第2题:利用高斯题:利用高斯(Gauss)消去法求解线性代数方程组(求解方法见消去法求解线性代数方程组(求解
18、方法见下页)。具体要求:编写程序来求解下列线性代数方程组,其中下页)。具体要求:编写程序来求解下列线性代数方程组,其中系数矩阵与常数向量利用初始化赋初值。要求输出系数矩阵与常系数矩阵与常数向量利用初始化赋初值。要求输出系数矩阵与常数向量。输出形式为数向量。输出形式为MAT A= 1.1161 0.1254 0.1397 0.1490 0.1582 1.1675 0.1768 0.1871 0.2368 0.2471 0.2568 1.2671 0.1968 0.2071 1.2168 0.2271MAT B= 1.5471 1.6471 1.8471 1.7471结果输出形式为结果输出形式为 x(1)=具体值具体值 x(2)=具体值具体值 x(3)=具体值具体值 x(4)=具体值具体值7471. 1x2271. 0 x2168. 1x2071. 0 x1968. 08471. 1x2671. 1x2568. 0 x2471. 0 x2368. 06471. 1x1871. 0 x1768. 0 x1675. 1x1582. 05471. 1x1490. 0 x1397. 0 x1254. 0 x1161. 143214321432
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年铁岭货运上岗证考试题
- 2025年唐山c1货运上岗证模拟考试
- 2024-2025年高中政治课时作业10新时代的劳动者含解析新人教版必修1
- 2024-2025学年高中生物课时分层作业12基因指导蛋白质的合成含解析新人教版必修2
- 2024-2025版高中生物2.1.1-2孟德尔遗传试验的科学方法分离规律试验练习含解析中图版必修2
- 2024-2025学年高中化学课时提升作业十五盐类的水解含解析新人教版选修4
- 2024-2025学年八年级物理全册4.1光的反射练习含解析新版沪科版
- 2024-2025学年高中语文7李将军列传学案含解析苏教版选修史记蚜
- 2024-2025学年高中生物第2章细胞的化学组成第2节组成细胞的无机物练习含解析北师大版必修1
- 我想你的检讨书
- 2025-2030全球废弃食用油 (UCO) 转化为可持续航空燃料 (SAF) 的催化剂行业调研及趋势分析报告
- 山东省临沂市兰山区2024-2025学年七年级上学期期末考试生物试卷(含答案)
- 湖北省武汉市2024-2025学年度高三元月调考英语试题(含答案无听力音频有听力原文)
- 一年级下册劳动《变色鱼》课件
- 商务星球版地理八年级下册全册教案
- 天津市河西区2024-2025学年四年级(上)期末语文试卷(含答案)
- 2025年空白离婚协议书
- 校长在行政会上总结讲话结合新课标精神给学校管理提出3点建议
- T-CSUS 69-2024 智慧水务技术标准
- 2025年护理质量与安全管理工作计划
- 湖南大学 嵌入式开发与应用(张自红)教案
评论
0/150
提交评论