1、同一数组的所有数组元素在内存中占用一片同一数组的所有数组元素在内存中占用一片连续的存储单元。连续的存储单元。2022/11/434.1 数值型数组应用数值型数组应用 一维数组的定义格式:一维数组的定义格式:类型类型 数组名数组名 下标表达式下标表达式 如:如:intint array5 array5;定义了一个名叫定义了一个名叫arrayarray的一维整型数组,其数的一维整型数组,其数组元素分别为:组元素分别为:array0,array0,array1,array1,array2,array2,array3,array3,array4array4。2022/11/44一维数组元素的存放顺序:
2、一维数组元素的存放顺序:按下标顺序存放在连续的内存单元中。array5:array0array0array1array1array2array2array3array3array4array42022/11/45一维数组的初始化:一维数组的初始化:初始值用花扩号扩起初始值用花扩号扩起,数组元素按存储顺序对数组元素按存储顺序对应取值。应取值。intint array5=1,2,3,4,5,b5=5,6,7;array5=1,2,3,4,5,b5=5,6,7;对对arrayarray的的5 5个元素赋了初值,个元素赋了初值,b b数组中数组中b0,b1,b2b0,b1,b2三个元素分别赋了初三个元
3、素分别赋了初值值5,6,7,5,6,7,而而b3,b4b3,b4则为零。则为零。数值型数组在定义时若对其中某些元素赋了数值型数组在定义时若对其中某些元素赋了初值,则其它未赋初值的元素将自动设置为初值,则其它未赋初值的元素将自动设置为0 0。2022/11/46一维数值型数组的赋值和输入输出:一维数值型数组的赋值和输入输出:数组名是数组首元素的内存地址数组名是数组首元素的内存地址,是一个常是一个常量,不能被赋值。量,不能被赋值。一维数值型数组一维数值型数组:要对各数组元素操作,不要对各数组元素操作,不能直接用数组名操作。能直接用数组名操作。输入数组各数组元素的值:intint j,a5;j,a5
4、;for(jfor(j=0;j5;j+)=0;jajaj;直接用直接用 cincina;a;错误。2022/11/47输出数组各数组元素的值:输出数组各数组元素的值:intint a5=1,2,3,4,5;a5=1,2,3,4,5;coutcouta;/输出内容错输出内容错,输出是一地址输出是一地址intint a5=1,2,3,4,5;j+)coutcoutajajendlendl;2022/11/48例例4.14.1、输入一维数值型数组各元素的值,并将、输入一维数值型数组各元素的值,并将各元素的值输出。各元素的值输出。#include#include using namespace std
5、;using namespace std;void main()void main()intint j,a5;j+)coutcoutajaj ;2022/11/49一维数组应用举例一维数组应用举例例例4.24.2、对一个大小为、对一个大小为100100的一维整型数组各元素的一维整型数组各元素赋值赋值2 2#include#include using namespace std;void main()void main()intint array100;array100;for(intfor(int j=0;j100;j+)j=0;j+)arrayjarrayj=2;=2;coutcoutarr
6、ayjarrayj ;if(j+1)%10=0)if(j+1)%10=0)coutcoutendlendl;2022/11/410例例4.34.3、有有n n个个学学生生参参加加某某门门课课程程的的考考试试,把把高高于于平均成绩的学生学号和成绩输出出来。平均成绩的学生学号和成绩输出出来。思路分析:对于学生的信息用数组表示。用用一一维维数数组组numnum表表示示学学生生的的学学号号;用用一一维维数数组组元素元素numinumi 表示第表示第i i个学生的学号。个学生的学号。用一维数组用一维数组s s表示学生的某门课程的考试成绩;表示学生的某门课程的考试成绩;用一维数组元素用一维数组元素sisi
7、 表示第表示第i i个学生某门课程的个学生某门课程的考试成绩。考试成绩。2022/11/411源程序清单:源程序清单:void main()void main()intint i,ni,n;float num50,s50,sum=0.0,ave;cincinn;n;for(ifor(i=0;i=0;inuminumisisi;in;i+)sum=+)sum=sum+sisum+si;aveave=sum/n;=sum/n;iave)coutave)coutnuminumisisiendlendl;2022/11/412例例4.44.4、求、求FibonacciFibonacci数列前数列前20
8、20项。项。FibonacciFibonacci数列前数列前2020项的值用一个一维数组项的值用一个一维数组f f表示,其中前两项的值分别是表示,其中前两项的值分别是1 1。因此,在定义。因此,在定义一维数组一维数组f f时,给前两个数组元素赋初始值时,给前两个数组元素赋初始值1 1。在。在输出结果时,每行输出输出结果时,每行输出5 5个数。个数。2022/11/413源程序清单:#include#include#include#include using namespace std;void void main(voidmain(void)intint i,f20=1,1;i,f20=1,1
9、;for(ifor(i=2;i20;i+)=2;i+)fifi=fi-2+fi-1;=fi-2+fi-1;i+)=0;i+)if(i%5=0)cout if(i%5=0)coutendlendl;coutcoutsetw(5)setw(5)fifi;2022/11/414例例4.54.5、求一维数组中最大、最小元素、求一维数组中最大、最小元素#include#include using namespace std;void main()void main()double array10=68.5,87.4,83.1,98.5,93.5,double array10=68.5,87.4,83.1
10、,98.5,93.5,76.9,98.1,62.4,54.6,91.7,big,small;76.9,98.1,62.4,54.6,91.7,big,small;big=small=array0;for(intfor(int i=0;i10;i+)i=0;ibig)big=big)big=arrayiarrayi;if(arrayiif(arrayismall)small=small)small=arrayiarrayi;coutcoutbig=big,small=smallbig=big,small=smallendlendl;2022/11/415例例4.64.6、利用折半查找法,在按从小
11、到大顺序排、利用折半查找法,在按从小到大顺序排列的十个数据中查找是否有键盘输入的数值列的十个数据中查找是否有键盘输入的数值x x。void void main(voidmain(void)intint a10,i,bot=0,mid,top=9,x,pos;a10,i,bot=0,mid,top=9,x,pos;coutcoutPlease input ten numbersPlease input ten numbers(from small to big):(from small to big):endlendl;iaiai;coutcoutPlease input the number
12、to Please input the number to queue:queue:x;2022/11/416while(botwhile(bot=top)x)x)top=mid-1;top=mid-1;else else botbot=mid+1;=mid+1;if(botif(bottop)top)coutcoutNo this number.;No this number.;else else coutcoutx is at the pos+1 x is at the pos+1 position.;position.;2022/11/417例例4.74.7、按从小到大对整型数组排序。、
13、按从小到大对整型数组排序。方法方法1 1:选择法:选择法 若干(用若干(用n n表示)整数数据用一维数组表示。表示)整数数据用一维数组表示。先将先将n n个数中的最小的数与第个数中的最小的数与第1 1个数对调,再将后个数对调,再将后面面n-1n-1个数中的最小的数与第个数中的最小的数与第2 2个数对调,个数对调,。每比较一轮,找出一个未经排序的数中最小的数每比较一轮,找出一个未经排序的数中最小的数与相应位置的数对调。与相应位置的数对调。2022/11/418源程序清单:void void main(voidmain(void)intint const N=20;const N=20;intint i,j,t,ni,j,t,n;intint aNaN;coutcoutInput numbers:Input numbers:2022/11/41
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1