C++数组的应用PPT推荐.ppt
《C++数组的应用PPT推荐.ppt》由会员分享,可在线阅读,更多相关《C++数组的应用PPT推荐.ppt(58页珍藏版)》请在冰豆网上搜索。
![C++数组的应用PPT推荐.ppt](https://file1.bdocx.com/fileroot1/2022-10/19/a7cd01d2-86ab-48cc-bff5-042753a27db2/a7cd01d2-86ab-48cc-bff5-042753a27db21.gif)
同一数组的所有数组元素在内存中占用一片同一数组的所有数组元素在内存中占用一片连续的存储单元。
连续的存储单元。
2022/11/434.1数值型数组应用数值型数组应用一维数组的定义格式:
一维数组的定义格式:
类型类型数组名数组名下标表达式下标表达式如:
如:
intintarray5array5;
定义了一个名叫定义了一个名叫arrayarray的一维整型数组,其数的一维整型数组,其数组元素分别为:
组元素分别为:
array0,array0,array1,array1,array2,array2,array3,array3,array4array4。
2022/11/44一维数组元素的存放顺序:
一维数组元素的存放顺序:
按下标顺序存放在连续的内存单元中。
array5:
array0array0array1array1array2array2array3array3array4array42022/11/45一维数组的初始化:
一维数组的初始化:
初始值用花扩号扩起初始值用花扩号扩起,数组元素按存储顺序对数组元素按存储顺序对应取值。
应取值。
intintarray5=1,2,3,4,5,b5=5,6,7;
array5=1,2,3,4,5,b5=5,6,7;
对对arrayarray的的55个元素赋了初值,个元素赋了初值,bb数组中数组中b0,b1,b2b0,b1,b2三个元素分别赋了初三个元素分别赋了初值值5,6,7,5,6,7,而而b3,b4b3,b4则为零。
则为零。
数值型数组在定义时若对其中某些元素赋了数值型数组在定义时若对其中某些元素赋了初值,则其它未赋初值的元素将自动设置为初值,则其它未赋初值的元素将自动设置为00。
2022/11/46一维数值型数组的赋值和输入输出:
一维数值型数组的赋值和输入输出:
数组名是数组首元素的内存地址数组名是数组首元素的内存地址,是一个常是一个常量,不能被赋值。
量,不能被赋值。
一维数值型数组一维数值型数组:
要对各数组元素操作,不要对各数组元素操作,不能直接用数组名操作。
能直接用数组名操作。
输入数组各数组元素的值:
intintj,a5;
j,a5;
for(jfor(j=0;
j5;
j+)=0;
jajaj;
直接用直接用cincina;
a;
错误。
2022/11/47输出数组各数组元素的值:
输出数组各数组元素的值:
intinta5=1,2,3,4,5;
a5=1,2,3,4,5;
coutcouta;
/输出内容错输出内容错,输出是一地址输出是一地址intinta5=1,2,3,4,5;
j+)coutcoutajajendlendl;
2022/11/48例例4.14.1、输入一维数值型数组各元素的值,并将、输入一维数值型数组各元素的值,并将各元素的值输出。
各元素的值输出。
#include#includeusingnamespacestd;
usingnamespacestd;
voidmain()voidmain()intintj,a5;
j+)coutcoutajaj;
2022/11/49一维数组应用举例一维数组应用举例例例4.24.2、对一个大小为、对一个大小为100100的一维整型数组各元素的一维整型数组各元素赋值赋值22#include#includeusingnamespacestd;
voidmain()voidmain()intintarray100;
array100;
for(intfor(intj=0;
j100;
j+)j=0;
j+)arrayjarrayj=2;
=2;
coutcoutarrayjarrayj;
if(j+1)%10=0)if(j+1)%10=0)coutcoutendlendl;
2022/11/410例例4.34.3、有有nn个个学学生生参参加加某某门门课课程程的的考考试试,把把高高于于平均成绩的学生学号和成绩输出出来。
平均成绩的学生学号和成绩输出出来。
思路分析:
对于学生的信息用数组表示。
用用一一维维数数组组numnum表表示示学学生生的的学学号号;
用用一一维维数数组组元素元素numinumi表示第表示第ii个学生的学号。
个学生的学号。
用一维数组用一维数组ss表示学生的某门课程的考试成绩;
表示学生的某门课程的考试成绩;
用一维数组元素用一维数组元素sisi表示第表示第ii个学生某门课程的个学生某门课程的考试成绩。
考试成绩。
2022/11/411源程序清单:
源程序清单:
voidmain()voidmain()intinti,ni,n;
floatnum50,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数列前数列前2020项。
项。
FibonacciFibonacci数列前数列前2020项的值用一个一维数组项的值用一个一维数组ff表示,其中前两项的值分别是表示,其中前两项的值分别是11。
因此,在定义。
因此,在定义一维数组一维数组ff时,给前两个数组元素赋初始值时,给前两个数组元素赋初始值11。
在。
在输出结果时,每行输出输出结果时,每行输出55个数。
个数。
2022/11/413源程序清单:
#include#include#include#includeusingnamespacestd;
voidvoidmain(voidmain(void)intinti,f20=1,1;
i,f20=1,1;
for(ifor(i=2;
i20;
i+)=2;
i+)fifi=fi-2+fi-1;
=fi-2+fi-1;
i+)=0;
i+)if(i%5=0)coutif(i%5=0)coutendlendl;
coutcoutsetw(5)setw(5)fifi;
2022/11/414例例4.54.5、求一维数组中最大、最小元素、求一维数组中最大、最小元素#include#includeusingnamespacestd;
voidmain()voidmain()doublearray10=68.5,87.4,83.1,98.5,93.5,doublearray10=68.5,87.4,83.1,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(inti=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、利用折半查找法,在按从小到大顺序排、利用折半查找法,在按从小到大顺序排列的十个数据中查找是否有键盘输入的数值列的十个数据中查找是否有键盘输入的数值xx。
voidvoidmain(voidmain(void)intinta10,i,bot=0,mid,top=9,x,pos;
a10,i,bot=0,mid,top=9,x,pos;
coutcoutPleaseinputtennumbersPleaseinputtennumbers(fromsmalltobig):
(fromsmalltobig):
endlendl;
iaiai;
coutcoutPleaseinputthenumbertoPleaseinputthenumbertoqueue:
queue:
x;
2022/11/416while(botwhile(bot=top)x)x)top=mid-1;
top=mid-1;
elseelsebotbot=mid+1;
=mid+1;
if(botif(bottop)top)coutcoutNothisnumber.;
Nothisnumber.;
elseelsecoutcoutxisatthepos+1xisatthepos+1position.;
position.;
2022/11/417例例4.74.7、按从小到大对整型数组排序。
、按从小到大对整型数组排序。
方法方法11:
选择法:
选择法若干(用若干(用nn表示)整数数据用一维数组表示。
表示)整数数据用一维数组表示。
先将先将nn个数中的最小的数与第个数中的最小的数与第11个数对调,再将后个数对调,再将后面面n-1n-1个数中的最小的数与第个数中的最小的数与第22个数对调,个数对调,。
每比较一轮,找出一个未经排序的数中最小的数每比较一轮,找出一个未经排序的数中最小的数与相应位置的数对调。
与相应位置的数对调。
2022/11/418源程序清单:
voidvoidmain(voidmain(void)intintconstN=20;
constN=20;
intinti,j,t,ni,j,t,n;
intintaNaN;
coutcoutInputnumbers:
Inputnumbers:
2022/11/41