第七讲 数组

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第七讲数组

数组是可以同时储存多个同类型数据的单个数据类型,其中所有的数据可以通过数组的下标来访问,并且这些数据在内存中占用的是一块连续的存储空间。数组可以是一维、二维或者三维的。

●掌握数组的基本概念

●掌握定义和初始化数组的方法

●掌握访问数组元素的方法

●熟练使用System.Array 类的属性和方法

一、一维数组

一维数组的定义

数组必须“先定义,后使用”。定义一维数组的格式如下:

数据类型[] 数组名;

如int[] x;

注意:数据类型可以是任意数据类型,包括数值类型和引用类型;

数组名命名遵循C#变量命名规则;

int[] arry;//定义了一个名为arry的数组,这个数字可以存放多个整数,但是此时并没有为存储变量在内存中分配空间。

定义数组和C语言的区别:

C语言中:数据类型数组名[数组长度];在定义中包含了数组元素个数,这种定义意味着内存事先按数组长度分配空间,而C# 事先并不为数组元素分配空间,而是在使用数组的过程中动态的分配数组元素的个数,控制数组占用的内存的大小。

一维数组的初始化:

在C#语言中,定义数组后必须对其初始化(为数组分配空间)才能使用。初始化有两种方法:静态初始化和动态初始化。

1.静态初始化

如果数组包含元素不多,且初始数组元素已知,则可以采用静态初始化方法。

数据类型[] 数组名={元素1,元素2,元素3,。。。。。。。,元素n};

无需说明数组个数,系统自动计算分配数组所需的内存空间。

Int[] arry={1,2,3,4};

String[] str={“china”,”American”,”Korea”};

2.动态初始化

需要使用new 关键字将数组实例化一个对象,再为该数组对象分配内存空间,并为数组元素赋初值。

格式:数据类型[] 数组名;// 数组定义

数组名=new 数据类型[表达式]; //数组动态初始化

或者

数据类型[] 数组名= new 数据类型[表达式];

“表达式”代表数组长度,为整型表达式。

New 运算符用来为数组对象在内存中分配一定的空间。数据占据的内存空间由数组的数据类型和表达式的数值共同决定。

int[] arry;//定义一个名为arry的数组。

arry=new int[10];//为arry数组在内存中分配4*10=40个字节的存储空间,元素值为0.

int[] arry=new int[10];//定义一个名为arry的整型数组,并为其分配40个字节的空间。

也可以在初始化得同时赋其他初始值。

Int[] arry=new int[] {1,2,3,4};

注意:在数组初始化语句中,如大括号中已经明确列出了数组中的元素值,即确定了数组元素个数,则数组元素的个数(方括号中的数值)必须为常量,并且与数组元素个数一致。

Int i=4;

Int[] x=new int[4]{1,2,3,4}

Int[] y=new int[4] {1,2,3}

Int[] z=new int[i]{1,2,3,4}

利用动态初始化的方法,可以动态的修改数组的长度:

int[] x=new int[5];

int n=10;

x=new int[n];

一维数组元素的引用:

格式:数组名[下标];

例:给定10个数字:3,5,34,65,15,74,28,59,122,42,将它们存放在一个数组中,并将其按从小到大的顺序输出。

选择法:先找出10个数中最小数的数组元素位置,将此最小数与数组中的第一个元素对调;再从第2个数到第10个数中找出最小数,按同样的办法,将次最小数与第2个位置上的数对调。

using System;

using System.Collections.Generic;

using System.Text;

namespace ConsoleApplication1

{

class Program

{

static void Main(string[] args)

{

int i, j, k, m;

int[] que = new int[] { 3, 5, 34, 65, 15, 74, 28, 59, 122, 42 };

for (i = 0; i < 10; i++)

{

k = i;

for (j = i + 1; j < 10; j++)

{

k = j;

if (que[k] < que[i])

{

m = que[i];

que[i] = que[k];

que[k] = m;

}

}

}

Console.WriteLine("输出排序后的结果:");

for (i = 0; i < 10; i++)

Console.Write("{0}\t", que[i]);

}

}

}

冒泡法:相邻的两个数比较,小的调前面。

using System;

using System.Collections.Generic;

using System.Text;

namespace ConsoleApplication1

{

class Program

{

static void Main(string[] args)

{

相关文档
最新文档