1. 程式人生 > >C# 初入數組

C# 初入數組

個數 完成 發生 move color 聲明 獲得 遍歷數組 mov

數組(數據類型):數組能存放多個同類型數據,數組長度不可改變。

Ⅰ、聲明與賦值

  ①數組聲明:數據類型[ ] 變量名;→→例:int[ ] array;//此時只是一個聲明這是個數組對象。

  ②賦值:給聲明了的數組賦值→→變量名=new 數據類型[長度 ];→→例:array=new int[5];//此時給數組賦值了個為5的長度,此時這裏的[5]也稱作下標或索引。

int [ ]str=new int[3]{"2","4","5"};第一種

int [ ]str={"3","5","9"};第二種,為最簡便的創立一個數組。

int [] nums=new int[6];//這樣只是創建了一個長度為6的數組,沒有賦值

Ⅱ、數組初始化

①數字類型,初始化時所有值=0; ②bool初始化的值=false; ③char 初始化值=\0; ④string初始化值=null;

int [] nums=new int[6];
//創建了數組,但沒賦值,此時數組內的所有元素都為0;

//創建長度為3的數組
int [] numbers=new int [3];
//給數組下標為0,的數組項賦值為6
numbers[0]=6;
//為numbers重新建立一個長度為2數組,相當於前面的數組就不用了
numbers=new int [2];
//新建立的數組為初始化,沒有賦值,所以此時都為0
Console.Write(numbers[0]);//
此時numbers[0]=0;

Ⅲ、數組項讀取與修改

①讀取:變量名[下標]

②修改(也叫賦值):變量名[ ]=值;→→array[1]=9;

Ⅳ、讀取數據長度

變量名 . length;

註意: length為數組對象的一個屬性。

    要獲取數組最後一項值就是array[array.length-1];

//創建數組
int  [] array={"4","2","7"};
//i為array下標,array.length為數組長度
for  (int i=0;i<array.length;i++)
{
     Console,Write( array );
   Console.WriteLine(array[array.length-1]); }

數組定長性

一個數組創建後,他的長度固定不可變,數據適用於數據數量固定場景。

int [] array=new int [3];
array=new int [4];
//此時會覺得這不是長度改變了嗎?其實不是。
//只是先定義了個長度為3的數組,再重新為array創建了一個長度為4的數組,所以之前的就廢棄了,長度並沒有發生改變

數組遍歷

給數組重新賦值或求和或求乘積等都會運用遍歷。

int [] array={"2","4","5"};
   for(int i=0;i<array.length;i++)
{
      Console.Write(array);
//輸出一個數組項後輸出空格隔開
 Console.Write("   ");
     
}

數組排序

①選擇排序:

把第一位數字拿出來依次和後面每一位數字比較,比他大則不換位置,比他小則換位置,,不管換了幾次都用第一位來比較,具有不穩定性

1-1. 使用任意的排序算法對數組進行排序,排序後,重新輸出數組內容
var array=[6,8,5,2,2];
for (var i=0;i<array.length-1;i++){
for(var j=i+1;j<array.length;j++){
if(array[i]>array[j]){
var temp=array[i];
array[i]=array[j];
array[j]=temp;
}
}
}
Console.Write(array);

②冒泡排序

相鄰兩個數進行比較,誰小換前面,誰大換後面。冒泡排序具有穩定性。

1-1. 使用任意的排序算法對數組進行排序,排序後,重新輸出數組內容
var array=[6,8,5,2,2];
//i為循環次數
for (var i=0;i<array.length-1;i++){
//j為array的下標
for(var j=0;j<array.length-1-i ;j++){
if(array[j]>array[j+1]){
var temp=array[j+1];
array[j+1]=array[j];
array[j]=temp;
}
}
}
Console.Write(array);

數組與集合

數組:能定長,用於保存固定數量的數據;占用內存少,遍歷快。

集合:不定長,可改變長度。

集合類型:List 類型最常見。

①創建集合

定義:List<數據類型>變量名;

賦值:變量名=new List <數據類型>(); 例:List<int> nums=new List<int>{3,6,8};

初始化:變量名=new List<數據類型>{元素1,元素2,元素3......元素n};

②操作:

添加元素:變量名 . add(要添加的數據);

插入元素:變量名 . Insert(索引,要插入的數據);

刪除元素:變量名 . RemoveAt(索引); //根據索引刪除

變量名 . Remove(數據);//根據數據刪除

修改元素:變量名[索引]=值;

獲取元素數量:變量名 . Count

【材料題】

1. 建立一個int類型的數組,變量名為nums,並使用初始化器給它的每一項賦值(隨意賦一些值即可),然後完成下面的練習

Console.Write("請輸入一個數組長度:");

int len = int.Parse(Console.ReadLine());

int[] nums=new int[len];

for (int i = 0; i < len; i++)

{

Console.Write("數組第" + (i + 1) + "組數據:");

nums[i] = int.Parse(Console.ReadLine());

}

for (int i = 0; i < nums.Length;i++ )

{

if (i < nums.Length - 1)

{

Console.Write(",");

}

Console.Write( nums[i]);

}

1-1. 讓用戶輸入一個下標和一個新的數字,修改數組對應下標的數字,若下標超出範圍,要給出錯誤提示,並讓用戶重新輸入



Console.Write("請輸入一個下標");

int len = int.Parse(Console.ReadLine());

Console.Write("請輸入一個新數字");

int num = int.Parse(Console.ReadLine());

int[] str = {2,3,6,3,1 };

if (len <= str.Length - 1)

{

str[len]=num;

Console.Write("正確");

}

else

{

Console.Write("超出範圍");

}

1-2. 讓用戶輸入一個要查找的數字,判斷該數字在數組中是否存在

int[] nums = {2,5,7,2,4 };

Console.Write("請輸入一個數字:");

int ter = int.Parse(Console.ReadLine());

bool IsNuM = false;

for (int i = 0; i < nums.Length;i++ )

{

if (nums[i] == ter)

{

IsNuM = true;

Console.WriteLine("存在過");

break;

}

}

if(IsNuM)

{

Console.Write("不存在");

}

1-5. 輸出數組中所有的質數
int[] nums = { 2, 4, 5, 7 };

// 遍歷數組獲得每一個元素

for (int i = 0; i < nums.length; i++) {

//默認元素是質數

boolean iszhishu = true;

//質數整除的範圍2~(n-1)

for (int j = 2; j < nums[i]; j++) {

//判斷是否合數,是合數iszhishu就為false,終止當前循環

if (nums[i] % j == 0) {

iszhishu = false;

break;

}

}

//判斷是否質數

if (iszhishu) {

Console.Write(nums[i] + "是質數");

}

C# 初入數組