第五章 数组-精品文档资料整理.pptx
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《第五章 数组-精品文档资料整理.pptx》由会员分享,可在线阅读,更多相关《第五章 数组-精品文档资料整理.pptx(42页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第5 5章章 数组数组 C语言程序设计 数组一维数组的定义和引用二维数组的定义和引用字符数组300 300 名?名?s001,s02s001,s02, ,s300s300, ,a001,a002,a001,a002,a300 300 ? ? C语言程序设计 数组用基本数据类型可以解决所有问题吗?用基本数据类型可以解决所有问题吗?例如例如:输出学生的姓名、年龄等数据。输出学生的姓名、年龄等数据。3 名名?S01S03代表学生姓名代表学生姓名,age01age03表示学生年龄表示学生年龄 数组属于构造类型。数组属于构造类型。 数组数组: :是具有一定是具有一定顺序关系顺序关系的若干的若干相同类型
2、变量的集合相同类型变量的集合, , 用数组名标识。用数组名标识。 元素元素: :组成数组的变量,组成数组的变量,用数组名和下标确定用数组名和下标确定5.1 一维数组的定义和引用一维数组的定义和引用一维数组的定义一维数组的定义v定义方式:定义方式: 数据类型数据类型 数组名数组名 常量常量表达式表达式 ; C语言程序设计 数组例例 int a6;a00145a1a2a3a4a523a例 int i=15; int datai; ( 不能用变量定义数组维数)例 int data5; data5=10; 一维数组元素的引用一维数组元素的引用v数组必须数组必须先定义先定义,后使用后使用v只能逐个引用数
3、组元素,不能一次引用整个数组。只能逐个引用数组元素,不能一次引用整个数组。v数组元素表示形式:数组元素表示形式: 数组名数组名下标下标其中:下标可以是常量或整型表达式其中:下标可以是常量或整型表达式 C语言程序设计 数组例例 int a10; printf(“%d”,a); ( )必须必须 for(j=0;j10;j+) printf(“%dt”,aj); ( )例例5.1#include void main() int i,a10; for(i=0;i=0;i- -) printf(“%d”,ai);运行结果:运行结果: 9 8 7 6 5 4 3 2 1 0一维数组的初始化一维数组的初始化
4、 C语言程序设计 数组实现的方法:实现的方法:v在定义数组时对数组元素赋初值。在定义数组时对数组元素赋初值。v只给一部分元素赋值。只给一部分元素赋值。int a5=1,2,3,4,5;等价于:等价于:a0=1; a1=2; a2=3; a3=4; a4=5;如如 int a5=6,2,3;等价于:等价于: a0=6; a1=2;a2=3; a3=0; a4=0;如如 int a3=6,2,3,5,1; ( )v数组元素值全部为数组元素值全部为0。int a5=0,0,0,0,0; 或或int a5=0; v对整个数组元素赋初值时,可以不指定长度。对整个数组元素赋初值时,可以不指定长度。int
5、a=1,2,3,4,5,6;编译系统根据初值个数确定数组编译系统根据初值个数确定数组大小大小一维数组程序举例一维数组程序举例 C语言程序设计 数组例例 读读10个整数存入数组,找出其中最大值和最小值个整数存入数组,找出其中最大值和最小值步骤步骤:1. 输入输入:for循环输入循环输入10个整数个整数2. 处理处理:(a) 先令先令max=min=x0(b) 依次用依次用xi和和max,min比较比较(循环循环) 若若maxxi,令令min=xi3. 输出输出:max和和min #include #define SIZE 10void main() int xSIZE,i,max,min; pr
6、intf(Enter 10 integers:n); for(i=0;iSIZE;i+) printf(%d:,i+1);scanf(%d,&xi); max=min=x0; for(i=1;iSIZE;i+) if(maxxi) min=xi; printf(Maximum value is %dn,max); printf(Minimum value is %dn,min); C语言程序设计 数组例例5.2 用数组来处理求用数组来处理求Fibonacci数列问题数列问题#include void main() int i; int f20=1,1; for(i=2;i20;i+) fi=f
7、i-2+fi-1; for(i=0;i20;i+) if(i%5=0) printf(n); printf(%12d,fi);) 3()2(12) 1(1121nFFFnFnFnnnf0f1f2f3f4f5f19.11f1901452319235 C语言程序设计 数组例例5.3 用起泡法对用起泡法对10个数排序(由小到大)个数排序(由小到大)9 8 8 8 8 8 8 9 5 5 5 5 5 5 9 4 4 4 4 4 4 9 2 2 2 2 2 2 9 0 0 0 0 0 0 98 5 5 5 5 5 8 4 4 4 4 4 8 2 2 2 2 2 8 0 0 0 0 0 85 4 4 4
8、4 5 2 2 2 2 5 0 0 0 0 54 2 2 2 02 4 0 0 0 42 00 2第一轮大数沉底第一轮大数沉底 第二轮第二轮 第三轮第三轮 第四轮第四轮 第五轮第五轮 此处:此处:n=6 外层循环外层循环j(1n-1)次次 内层循环内层循环i (1n-j)次次 C语言程序设计 数组输入输入n 个数给个数给a1 到到 anfor j=1 to n-1for i=1 to n-jaiai+1真真假假aiai+1输出输出a1 到到 an#include void main() int a10,i,j,t; printf(Input 10 numbers:n); for(i=0;i10
9、;i+) scanf(%d,&ai); printf(n); for(j=0;j9;j+) for(i=0;iai+1) t=ai; ai=ai+1; ai+1=t; printf(The sorted numbers:n); for(i=0;i10;i+) printf(%d ,ai);5.2 二维数组的定义和引用(多维数组)二维数组的定义和引用(多维数组)二维数组的定义二维数组的定义v定义的一般形式定义的一般形式类型说明符类型说明符 数组名数组名常量表达式常量表达式常量表达式常量表达式; C语言程序设计 数组例例 int a34; float b25; int c234; int a3,4
10、; ( )v数组元素的存放顺序数组元素的存放顺序l原因原因:内存是一维的内存是一维的l二维数组:按行序优先二维数组:按行序优先l多维数组:最右下标变化最快多维数组:最右下标变化最快int a32a01a10a11a20a21014523a00a00 a01a10 a11a20 a215.2 二维数组的定二维数组的定义和引用(多维数义和引用(多维数组组) C语言程序设计 数组int c23401234567.20212223c000c001c002c003c010c011c012c013c020c021c022c023c100c101c102c103c110c111c112c113c120c12
11、1c122c123v二维数组理解二维数组理解 C语言程序设计 数组例例 int a34;20161720181920202120222320089201011201213201415200012002320045200067a00 a01 a02 a03a10 a11 a12 a13a20 a21 a22 a23每个元素ai由包含4个元素的一维数组组成二维数组a是由3个元素组成a0a1a2行名a01a02a03a10a11a00a13a20a21a22a23a1201452367101189a0a1a2二维数组的引用二维数组的引用v形式:形式: 数组名数组名下标下标下标下标l下标是整型或字符型
12、的常量,变量或表达式。下标是整型或字符型的常量,变量或表达式。(定义时不能使用变量)(定义时不能使用变量)如:如: a12 aijl数组元素可出现在表达式中,如:数组元素可出现在表达式中,如: a12=a22/2l使用数组元素时,应注意不要超出其定义的使用数组元素时,应注意不要超出其定义的范围;范围;如:如: int a23; a23=5; C语言程序设计 数组 C语言程序设计 数组二维数组的初始化二维数组的初始化v分行初始化分行初始化v按元素排列顺序初始化按元素排列顺序初始化 例例 int a23=1,2,3,4,5,6;a00 a01 a02 a10 a11 a12123456 例例 in
13、t a23=1,2,4;a00 a01 a02 a10 a11 a12120400 例例 int a3=1,4,5;a00 a01 a02 a10 a11 a12100450 例例 int a23=1,2,3,4,5,6;a00 a01 a02 a10 a11 a12123456全部初始化全部初始化 例例 int a23=1,2,4;a00 a01 a02 a10 a11 a12124000 例例 int a3=1,2,3,4,5;a00 a01 a02 a10 a11 a12123450第一维第一维长度省略初始化长度省略初始化二维数组程序举例二维数组程序举例 C语言程序设计 数组例例5.4
14、将二维数组行列元素互将二维数组行列元素互 换,存到另一个数组中换,存到另一个数组中#include void main() int a23=1,2,3,4,5,6; int b32,i,j; printf(array a:n); for(i=0;i=1;i+) for(j=0;j=2;j+) printf(%5d,aij); bji=aij; printf(n); printf(array b:n); for(i=0;i=2;i+) for(j=0;j=1;j+) printf(%5d,bij); printf(n); a=1 2 34 5 6b=1 42 53 6 C语言程序设计 数组例例5
15、.5 求二维数组中最大元素值及其行列号求二维数组中最大元素值及其行列号max=a00for i=0 to 2for j=0 to 3aijmax真真假假max=aijrow=icolum=j输出输出:max和和row,colum#include void main() int a34=1,2,3,4, 9,8,7,6,-10,10,-5,2; int i,j,row=0,colum=0,max; max=a00; for(i=0;i=2;i+) for(j=0;jmax) max=aij; row=i; colum=j; printf(max=%d,row=%d, colum=%dn,max,
16、row,colum);5.3 字符数组字符数组字符数组:存放字符数据的数组。字符数组:存放字符数据的数组。一维字符数组:存放一个字符串(每个数组元素存放一个字符)一维字符数组:存放一个字符串(每个数组元素存放一个字符)二维字符数组:存放多个字符串(行数是字符串的个数)二维字符数组:存放多个字符串(行数是字符串的个数)字符数组的定义字符数组的定义v形式:形式:lchar 数组名数组名常量表达式常量表达式lchar 数组名数组名常量表达式常量表达式常量表达式常量表达式l常量表达式:整数、字符、符号常量常量表达式:整数、字符、符号常量 C语言程序设计 数组例例 char c10, ch34;v可以用
17、整型数组存放字符型数据,但浪费存储空间。可以用整型数组存放字符型数据,但浪费存储空间。字符数组的初始化字符数组的初始化v逐个字符赋值逐个字符赋值v用字符串常量用字符串常量 C语言程序设计 数组 例例 char ch5=H,e,l,l,o;ch0Hello逐个字符赋值逐个字符赋值ch1ch2ch3 ch4 例例 char ch4=H,e,l,l,o;ch0Hello逐个字符赋值逐个字符赋值ch1ch2ch3 ch4有问题! 例例 char ch5=B,o,y;ch0Boy00逐个字符赋值逐个字符赋值ch1ch2ch3 ch4 例例 char ch =H,e,l,l,o;ch0Hello逐个字符赋
18、值逐个字符赋值ch1ch2ch3 ch4 例例 char diamond5= , ,*, ,*, ,*, *, , , ,*, ,*, ,*, , ,*;二维字符数组初始化二维字符数组初始化*00 * *0* * * *0 *00diamond0diamond1diamond2diamond3diamond4 C语言程序设计 数组例例5.6 输出一个字符串输出一个字符串#include void main() char c10=I, ,a,m, ,a, ,b,o,y; int i; for(i=0;i10;i+) printf(%c,ci); printf(n);Iamaboy01234567
19、89字符数组的引用字符数组的引用 C语言程序设计 数组例例5.7 输出一个钻石图形输出一个钻石图形#include void main() char diamond 5= , ,*, ,*, ,*,*, , , ,*, ,*, ,*, , ,*; int i,j; for(i=0;i5;i+) for(j=0;j5;j+) printf(%c,diamondij); printf(n); 运行结果:运行结果:* * * *字符串和字符串结束标志字符串和字符串结束标志v字符串:用双引号括起的若干字符,如:字符串:用双引号括起的若干字符,如: “china”可将其存放在一维或两维字符型数组中。可将
20、其存放在一维或两维字符型数组中。无字符串变量,用字符数组处理字符串无字符串变量,用字符数组处理字符串v字符串结束标志:字符串结束标志:0,( (既无动作既无动作, ,又不显示又不显示) ) l字符串的长度:第一个字符串的长度:第一个 0以前字符的个数以前字符的个数l在字符型数组或字符串中遇在字符型数组或字符串中遇 0,即认为该字符串结束。,即认为该字符串结束。l系统对字符串常量自动加一个系统对字符串常量自动加一个0作为结束符。作为结束符。printf(“china”); C语言程序设计 数组china0v用字符串常量初始化字符数组用字符串常量初始化字符数组 C语言程序设计 数组 例例 char
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第五章 数组-精品文档资料整理 第五 数组 精品 文档 资料 整理
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内