欢迎来到天天文库
浏览记录
ID:14277173
大小:105.50 KB
页数:19页
时间:2018-07-27
《实验2.5 数组的使用》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实验2.5 数组的使用2.5.1实验目的(1)掌握一维数组、二维数组的定义存储分配方法;(2)了解如何给数组赋初值;(3)熟悉利用循环实现数组的赋值、输出以及处理编程方法。(4)了解命令行参数数组的使用(5)熟悉数组方法参数传递的特点。2.5.2知识要点1数组的定义与分配空间(1)定义数组方括号的位置可在数组名前,也可在后。 inta[];等价于int[]a;(2)给数组分配空间的办法:办法1:通过new运算符,例:a=newint[10];办法2:给数组赋初值将自动给数组分配空间;例:intb
2、[]={1,2,3,4,5,3,4,6,7,3};Java规定一维数组的第1个元素的下标为0。(3)关于数组的默认初值问题基本类型数组元素中存放的是数据本身,而引用类型的数组元素中存放的是对象的引用,基本类型上数组在分配空间后,不论数组在什么位置定义,均按基本类型变量的默认值规定赋初值,而引用类型数组在分配空间后默认初值为null。(4)二维数组可看作是数组的数组,每个元素包括行列位置。(5)数组的大小用length属性可求得,一维数组元素的最大下标为其length-1。2数组的访问(1)用一重循环可
3、遍历访问一维数组的所有元素。例如,以下语句给数组a的所有元素赋值为0。for(intk=0;k4、外的空格作为串之间的分隔符。(2)命令行数组的大小有命令行中输入数据的个数决定。(3)程序运行时如果未输入任何参数,而访问命令行参数数组的元素,则将抛出数组访问出界异常。4数组作为方法参数(1)方法的形参定义为一个数组,实际数组由实参传递,方法中对形参数组的操作实际上是访问实参数组。(2)利用数组作为参数可编写对数组操作的一些通用程序,例如:求所有元素的平均值,将数组排序等。2.5.3样例程序样例1:利用随机函数产生16个随机整数给一个4*4的二维数组赋值。 1)按行列输出数组 2)求最外一圈元素5、之和。 3)求主角线中最大元素的值,及其位置。【参考程序】publicclasssum{publicstaticvoidmain(Stringargs[]){ inta[][]=newint[4][4]; ints=0; //计算和 /* 用随机函数给数组赋值*/ for(inti=0;i6、or(inti=0;i7、8、i==a.length-19、10、j==011、12、j==a[i].length-13、1) s+=a[i][j]; System.out.println("sum="+s); /* 主对角线中最大元值,及其位置*/ intpos=0; for(intk=1;ka[pos][pos]) pos=k; } System.out.println("主对角线最大元为a["+p+"]["+p+"]="+a[p][p]);} }【编程技巧】(1)用二重循环访问二维数组的元素,外循环控制行变化,内循环14、控制列变化;(2)如何最外一圈元素的特征,从而找出所有最外一圈元素。(3)主对角线上元素行、列值相等,所以可用一重循环遍历元素。样例2就一维数组问题编写如下方法: 1)求一个数组的最大元素值:publicstaticintmaxe(inta[]) 2)求一个数组的所有元素的平均值:publicstaticintaverage(inta[]) 3)查找某个数在数组中的位置:publicstaticintsearch(inta[],intk)
4、外的空格作为串之间的分隔符。(2)命令行数组的大小有命令行中输入数据的个数决定。(3)程序运行时如果未输入任何参数,而访问命令行参数数组的元素,则将抛出数组访问出界异常。4数组作为方法参数(1)方法的形参定义为一个数组,实际数组由实参传递,方法中对形参数组的操作实际上是访问实参数组。(2)利用数组作为参数可编写对数组操作的一些通用程序,例如:求所有元素的平均值,将数组排序等。2.5.3样例程序样例1:利用随机函数产生16个随机整数给一个4*4的二维数组赋值。 1)按行列输出数组 2)求最外一圈元素
5、之和。 3)求主角线中最大元素的值,及其位置。【参考程序】publicclasssum{publicstaticvoidmain(Stringargs[]){ inta[][]=newint[4][4]; ints=0; //计算和 /* 用随机函数给数组赋值*/ for(inti=0;i6、or(inti=0;i7、8、i==a.length-19、10、j==011、12、j==a[i].length-13、1) s+=a[i][j]; System.out.println("sum="+s); /* 主对角线中最大元值,及其位置*/ intpos=0; for(intk=1;ka[pos][pos]) pos=k; } System.out.println("主对角线最大元为a["+p+"]["+p+"]="+a[p][p]);} }【编程技巧】(1)用二重循环访问二维数组的元素,外循环控制行变化,内循环14、控制列变化;(2)如何最外一圈元素的特征,从而找出所有最外一圈元素。(3)主对角线上元素行、列值相等,所以可用一重循环遍历元素。样例2就一维数组问题编写如下方法: 1)求一个数组的最大元素值:publicstaticintmaxe(inta[]) 2)求一个数组的所有元素的平均值:publicstaticintaverage(inta[]) 3)查找某个数在数组中的位置:publicstaticintsearch(inta[],intk)
6、or(inti=0;i7、8、i==a.length-19、10、j==011、12、j==a[i].length-13、1) s+=a[i][j]; System.out.println("sum="+s); /* 主对角线中最大元值,及其位置*/ intpos=0; for(intk=1;ka[pos][pos]) pos=k; } System.out.println("主对角线最大元为a["+p+"]["+p+"]="+a[p][p]);} }【编程技巧】(1)用二重循环访问二维数组的元素,外循环控制行变化,内循环14、控制列变化;(2)如何最外一圈元素的特征,从而找出所有最外一圈元素。(3)主对角线上元素行、列值相等,所以可用一重循环遍历元素。样例2就一维数组问题编写如下方法: 1)求一个数组的最大元素值:publicstaticintmaxe(inta[]) 2)求一个数组的所有元素的平均值:publicstaticintaverage(inta[]) 3)查找某个数在数组中的位置:publicstaticintsearch(inta[],intk)
7、
8、i==a.length-1
9、
10、j==0
11、
12、j==a[i].length-
13、1) s+=a[i][j]; System.out.println("sum="+s); /* 主对角线中最大元值,及其位置*/ intpos=0; for(intk=1;ka[pos][pos]) pos=k; } System.out.println("主对角线最大元为a["+p+"]["+p+"]="+a[p][p]);} }【编程技巧】(1)用二重循环访问二维数组的元素,外循环控制行变化,内循环
14、控制列变化;(2)如何最外一圈元素的特征,从而找出所有最外一圈元素。(3)主对角线上元素行、列值相等,所以可用一重循环遍历元素。样例2就一维数组问题编写如下方法: 1)求一个数组的最大元素值:publicstaticintmaxe(inta[]) 2)求一个数组的所有元素的平均值:publicstaticintaverage(inta[]) 3)查找某个数在数组中的位置:publicstaticintsearch(inta[],intk)
此文档下载收益归作者所有