Visual C# .NET数组(技术讲解)_第1页
Visual C# .NET数组(技术讲解)_第2页
Visual C# .NET数组(技术讲解)_第3页
Visual C# .NET数组(技术讲解)_第4页
Visual C# .NET数组(技术讲解)_第5页
已阅读5页,还剩18页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第4章

数

组

本章要点:

数组的概念

一维数组的定义、分配与初始化

二维数组的定义、分配与初始化

foreach语句的使用方法

与数组有关的算法例4.1循序渐进学理论

4.1.1数组的概念

可以把数组看成是很多个变量的集合,这些变量具有相同的类型,它们在内存中是连续存放的,这些变量均具有相同的名称,并且可以通过下标相互区分,每一个这样的变量我们把它称为数组元素。如假设存放300个学生数学成绩的数组名为cj,要求出所有学生的数学的平均分,可使用下列语句:aver=0.0;for(i=0;i<300;i++)aver=aver+cj[i];aver=aver/300;

4.1.2一维数组的定义、分配与使用

所谓一维数组是指只有一个下标的数组。数组在使用之前必须先定义(或称声明)和分配空间,然后才能使用数组元素。

1.一维数组的定义与分配[格式]:数据类型符

[]数组名

=new数据类型符[长度];例如,有下列语句:int[]a=newint[10];//定义了一个数组a,该数组的数据类型是int,具有10个元素。其实数组的声明与分配可以写成两条语句,上述语句也可以写成:int[]a;//定义数组a=newint[10];//给数组分配存储空间

与C/C++不同的是,C#中的数组的大小可以动态确定,如有以下语句:

intAL=6;

inta[]=newint[AL];

这两条语句定义了一个长度为6的数组a。

2.定义数组时对数组元素进行初始化

[格式]:数据类型符

[]数组名

={初值列表};

例如,有下列语句:int[]x={1,2,3,4};该语句定义了具有4个元素的数组x,并依次给x[0]、x[1]、x[2]和x[3]赋初值1、2、3和4。上述语句也可以写成:int[]x=newint[]{1,2,3,4};3.数组元素的引用引用一维数组元素的一般形式如下:数组名[下标]例如,有定义语句:int[]a=newint[5];那么a数组具有元素a[0]、a[1]、a[2]、a[3]和a[4]。【例4-1】

找最大数游戏:有一批数,请你快速地找出最大数及其位置。

【例4-2】

随机产生十个两位数,然后利用选择法把它们从小到大排序。4.1.3多维数组的定义、分配与使用

一维数组只有一个下标,多维数组具有多个下标,要引用多维数组的数组元素,需要使用多个下标。多维数组中最常用的是二维数组。所谓二维数组,就是有两个下标的数组,适合处理如成绩报告表、矩阵等具有行列结构的数据。与C/C++不同的是,C#的二维数组的每一行的数组元素个数可以相等,也可以不相等。每行数组元素个数相等的二维数组称为方形二维数组,各行数组元素个数不同的称参差数组。

1.方形二维数组

(1)定义与分配[格式]:数据类型符

[,]数组名

=new数据类型符[长度1,长度2];例如,有下列语句:int[,]a=newint[3,4];//定义了一个数组a,该数组的数据类型是int,具有12个元素。其实上述数组的声明与分配可以写成两条语句,上述语句也可以写成:int[,]a;//定义数组a=newint[3,4];//给数组分配存储空间二维数组的逻辑结构(2)赋初值

[格式]:数据类型符

[,]数组名

={{初值列表1},{初值列表2},…,{初值列表n}};

例如,有下列语句:int[,]b={{1,2,3,4},{5,6,7,8},{9,10,11,12}};

上述语句也可以写成:int[,]a=newint[3,4]{{1,2,3,4},{5,6,7,8},{9,10,11,12}};

(3)元素引用引用方形二维数组元素的一般格式如下:数组名[下标1,下标2]2.参差数组

与C/C++不同的是,在C#中,二维数组的每一行的长度可以是不同的,每一行的元素个数均可以由用户指定。(1)分配行[格式]:数据类型符[][]数组名=new数据类型符[行数][];例如,有下列语句:

int[][]b=newint[3][];该语句定义了一个名为b的参差数组,数组的行数为3。(2)名行数组元素个数的分配

[格式]:数组名[i]=new数据类型符[长度];例如,有以下语句:int[][]b=newint[3][];//定义具有3行的参差数组bb[0]=newint[2];//首行具有2个元素b[1]=newint[3]; //第二行具有3个元素b[2]=newint[4];//第三行具有4个元素(3)元素引用数组名[下标1][下标2]【例4-3】

某班有M名同学,本学期开了N门课,期末考试后,要统计每个学生的平均分。请你编写一个程序实现该功能。要求:对于每个学生要输入学号和N门课的成绩。【例4-4】编程输出杨辉三角的前五行。杨辉三角的前五行值如下所示。11 11 2 11 3 3 11 4 6 4 14.1.4foreach

foreach语句是专用于对数组、集合等数据结构中的每一个元素进行循环操作的语句,通过它可以列举数组、集合中的每一个元素,并且通过执行循环体对每一个元素进行需要的操作。

[格式]:foreach(数据类型符

变量名

in数组或集合)

循环体;

【例4-5】

使用foreach语句求二维数组的最小值。4.2典型实例练能力

4.2.1典型实例一:冒泡法排序

【实例题目】用冒泡法把随机产生的10个整数从小到大排列。

4.2.1典型实例二:求二维数组各行的最大值及其下标

【实例题目】

某次集会时,学生排成了M行N列的方阵。请你编程把每个人的身高录入到计算机中,然后找出每行的最高身高和该同学在该行中的位置。4.3上机练习重应用

4.3.1上机练习一:二分法查找

【练习题目】

定义一个具有十个元素的一维数组,给它赋一个有序整数序列,然后利用折半查找算法查找一个输入的数m在数组中的位置。若找到,输出其下标,若找不到,则显示没有找到

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论