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

提交評論