(2)“初值表”中的初值个数,可以少于元 素个数,即允许只给部分元素赋初值 如:inty10={1,2,3}; /前三个元素赋值,其余元素值为0 int arr120={0,0,0,4,5,6}; r1|3=4,ar14=5, arr15=6,其余元素值为0 2021/224
2021/2/24 11 (2)“初值表”中的初值个数,可以少于元 素个数,即允许只给部分元素赋初值。 如:int y[10]={1,2,3}; //前三个元素赋值,其余元素值为0 int arr1[20]={0,0,0,4,5,6}; //arr1[3]=4,arr1[4]=5, //arr1[5]=6,其余元素值为0
(3)根据存储类型的不同,数组有静态数组 ( static)和动态数组(auto)之分;根据定义的 位置不同,数组有内部数组(在函数内部定义的数 组)和外部数组(在函数外部定义的数组)之分 (4)当把数组定义为全局变量或静态变量时, C++编译器自动地将所有元素的初值置为0。当把 数组定义为其他存储类型的局部变量时,数组的元 素没有确定的初值,即值是随机的。 例2:输出数组为全局变量和局部变量时的初值。 62 2021/224
2021/2/24 12 (3)根据存储类型的不同,数组有静态数组 (static)和动态数组(auto)之分;根据定义的 位置不同,数组有内部数组(在函数内部定义的数 组)和外部数组(在函数外部定义的数组)之分。 (4)当把数组定义为全局变量或静态变量时, C++编译器自动地将所有元素的初值置为0。当把 数组定义为其他存储类型的局部变量时,数组的元 素没有确定的初值,即值是随机的。 例2:输出数组为全局变量和局部变量时的初值。 62
维数组的应用举例 例3:求出3~100之间的所有素数(质数),并要求每 行输出5个素数。 分析:一种求素数的方法。由于大于3的素数一定是奇 数,为此先说明一个数组 prime49,各个元素的初值 分别为 3、5、7、9、11、13、 97、99。从第0个元 素开始,其后的各个元素若是第0个元素的倍数,则该 数不是素数,将其值置为0。再从第1个元素开始,其 后的各个元素若是第1个元素的倍数,则将其置为0。 依次类推,直至从第47个元素开始,其后元素若是第 47个元素的倍数,则将其值置为0。这时数组 prime中 不为0的元素为素数。 63 2021/2/24 13
2021/2/24 13 一维数组的应用举例 例3:求出3~100之间的所有素数(质数),并要求每 行输出5个素数。 分析:一种求素数的方法。由于大于3的素数一定是奇 数,为此先说明一个数组prime[49],各个元素的初值 分别为: 3、5、7、9、11、13、…、97、99。从第0个元 素开始,其后的各个元素若是第0个元素的倍数,则该 数不是素数,将其值置为0。再从第1个元素开始,其 后的各个元素若是第1个元素的倍数,则将其置为0。 依次类推,直至从第47个元素开始,其后元素若是第 47个元素的倍数,则将其值置为0。这时数组prime中 不为0的元素为素数。 63
例4:用选择排序的方法对输入的10个整数进行排 序(从小到大)。 分析:排序分升序和降序两种。升序指从小到大, 降序指从大到小。选择排序思想:首先找出最小的 数,放到0下标位置。再从第1个元素开始,用同样 的方法,找出次小的元素放到1下标位置。依次类 推,直到将次大的数放到8下标位置,此时9下标位 置即为最大数。 2021/224
2021/2/24 14 例4:用选择排序的方法对输入的10个整数进行排 序(从小到大)。 分析:排序分升序和降序两种。升序指从小到大, 降序指从大到小。选择排序思想:首先找出最小的 数,放到0下标位置。再从第1个元素开始,用同样 的方法,找出次小的元素放到1下标位置。依次类 推,直到将次大的数放到8下标位置,此时9下标位 置即为最大数。 64
例5:从键盘上任意输入10个整数,要求按从小到大 的顺序在屏幕上显示出来。 分析:排序的方法有很多,本题采用冒泡法。 冒泡法的基本思想:通过相邻两个数之间的比 较和交换,使排序码(数值)较小的数逐渐从底部 移向顶部,排序码较大的数逐渐从顶部移向底部。 由A四A组成的m个数据,进行冒泡排序的 过程可以描述为 (1)首先将相邻的AIm与AIm-1进行比较,如果 A[m的值小于A[n-1的值,则交换两者的位置,使较 小的上浮,较大的下沉;接着比较An-1与An-2, 同样使小的上浮,大的下沉。依此类推,直到比较 完A2和A后,A[为具有最小排序码(数值)的 元素,称第一趟排序结束
2021/2/24 15 例5:从键盘上任意输入10个整数,要求按从小到大 的顺序在屏幕上显示出来。 分析:排序的方法有很多,本题采用冒泡法。 冒泡法的基本思想:通过相邻两个数之间的比 较和交换,使排序码(数值)较小的数逐渐从底部 移向顶部,排序码较大的数逐渐从顶部移向底部。 由A[n]~A[1]组成的n个数据,进行冒泡排序的 过程可以描述为: (1)首先将相邻的A[n]与A[n-1]进行比较,如果 A[n]的值小于A[n-1]的值,则交换两者的位置,使较 小的上浮,较大的下沉;接着比较A[n-1]与A[n-2], 同样使小的上浮,大的下沉。依此类推,直到比较 完A[2]和A[1]后,A[1]为具有最小排序码(数值)的 元素,称第一趟排序结束