C# 初入數組
數組(數據類型):數組能存放多個同類型數據,數組長度不可改變。
Ⅰ、聲明與賦值
①數組聲明:數據類型[ ] 變量名;→→例: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# 初入數組