第7章数组 7、1、2一维数组的初始化 初始化格式: 数据类型数组名[常量表达式]={初值表} ·初始化:在定义时指定初始值,编译器把初值 赋给数组变量。赋值:使用赋值语句,在程序 运行时把值赋给数组变量,如a[0]=2。 1、一般初始化,例 static int a[10]={0,1,2,3,4,5,6,7,8,9} int array[10]={1,2,3,4,5,6,7,8,9,10}; 2、部分元素初始化,其余元素均为零 例、 static int a[10]={0,1,2,3,4; 仅前5个元素赋初值,后5个元素未指顶初值。 3、全部元素均初始化为0,不允许简写。 static int a[10]={0,0,0,0,0,0,0,0,0,0}
第7章 数组 • 7、1、2 一维数组的初始化 • 初始化格式: • 数据类型 数组名[常量表达式]={初值表} • 初始化:在定义时指定初始值,编译器把初值 赋给数组变量。赋值:使用赋值语句,在程序 运行时把值赋给数组变量,如a[0] = 2。 • 1、一般初始化,例、 • static int a[10]= { 0,1,2,3,4,5,6,7,8,9} • int array[10] = {1,2,3,4,5,6,7,8,9,10}; • 2、部分元素初始化,其余元素均为零。 • 例、static int a[10] = {0,1,2,3,4}; • 仅前5个元素赋初值,后5个元素未指顶初值。 • 3、全部元素均初始化为0,不允许简写。 • static int a[10] = {0,0,0,0,0,0,0,0,0,0};
第7章数组 不能简写为: static int a[10]=0*101 注意:当程序不给数组指定初始值时,编译器 作如下处理: ·(1)编译器自动把静态数组的各元素初始化 为0。 (2)编译器不为动态数组自动指定初始值 4、如果全部元素均指定初值,定义中可以省 略元素的个数,例 static int a[5]={1,2,3,4,5}; 可以写为: static int a[]=1, 2, 3, 4, 5 7、1、3数组元素的引用
第7章 数组 • 不能简写为: • static int a[10] = {0*10}; • 注意:当程序不给数组指定初始值时,编译器 作如下处理: • (1)编译器自动把静态数组的各元素初始化 为0。 • (2)编译器不为动态数组自动指定初始值。 • 4、如果全部元素均指定初值,定义中可以省 略元素的个数,例、 • static int a[5] = {1,2,3,4,5}; • 可以写为: • static int a[ ] = {1,2,3,4,5}; • 7、1、3 数组元素的引用
第7章数组 C语言规定,不能引用整个数组,只能逐个引 用元素,元素引用方式: 数组名[下标表达式] 例、a[0]=a[5]+a[7]-a[2*3] “下标表达式”可以是任何非负整型数据,取 值范围是0~(元素个数-1) 别强调:在运行C语言程序过程中,系统并 不自动检验数组元素的下标是否越界。因此在 编写程序时,保证数组下标不越界是十分重要 的 1个数组元素,实质上就是1个变量,它具有和 相同类型单个变量一样的属性,可以对它进行 赋值和参与各种运算。 在C语言中,数组作为1个整体,不能参加数据 运算,只能对单个的元素进行处理
第7章 数组 • C语言规定,不能引用整个数组,只能逐个引 用元素,元素引用方式: • 数组名[下标表达式] • 例、a[0] = a[5] + a[7] - a[2*3] • “下标表达式”可以是任何非负整型数据,取 值范围是0 ~ (元素个数-1)。 • 特别强调:在运行C语言程序过程中,系统并 不自动检验数组元素的下标是否越界。因此在 编写程序时,保证数组下标不越界是十分重要 的。 • 1个数组元素,实质上就是1个变量,它具有和 相同类型单个变量一样的属性,可以对它进行 赋值和参与各种运算。 • 在C语言中,数组作为1个整体,不能参加数据 运算,只能对单个的元素进行处理
第7章数组 [例6.1]使数组元素a[0]~a[9的值为 0~9,然后逆序输出。 main int i, a[10] for(i=0;i<=9;i++) ali=i for (i=9; i>=0; i printf( %d alil 运行输出:9876543210
第7章 数组 • [例6.1] 使数组元素a[0]~a[9]的值为 0~9,然后逆序输出。 • main() • { • int i,a[10]; • for (i=0;i<=9;i++) • a[i] = i; • for(i=9;i>=0; i--) • printf("%d ",a[i]); • } • 运行输出:9 8 7 6 5 4 3 2 1 0
第7章数组 7、1、4一维数组的应用 °[例7-3]输入10个数,用“冒泡法”对10个数排序(由小 到大)。 冒泡法的基本思想:通过相邻两个数之间的比较和交换 使排序码(数值)较小的数逐渐从底部移向顶部,排序 码较大的数逐渐从顶部移向底部。就像水底的气泡一样 逐渐向上冒,故而得名 ·“冒泡法”算法:以六个数9、8、5、4、2、0为例。 第1趟比较(下图1)第2趟比较(下图2) 985 8 854-9 8;555 895-420 854209 5!:8:44 420 54290 4:41:8:2 22:2:8 54208 000:0 第1次第2次第3次第4次结果 第1次第2次第3次第4次第5次结果
第7章 数组 • 7、1、4 一维数组的应用 • [例7-3] 输入10个数,用“冒泡法”对10个数排序(由小 到大)。 • 冒泡法的基本思想:通过相邻两个数之间的比较和交换, 使排序码(数值)较小的数逐渐从底部移向顶部,排序 码较大的数逐渐从顶部移向底部。就像水底的气泡一样 逐渐向上冒,故而得名。 • “冒泡法”算法:以六个数9、8、5、4、2、0为例。 • 第1趟比较(下图1) 第2趟比较(下图2)