C#數組


C#數組

 使用數組,快速入門:

  1. 聲明數組  --> int [] 數組名稱;  //注意和Java不一樣中括號必須在中間

  2. 開辟空間  -->  數組名稱 = new 數組類型[指定數組長度];    //new=數據空間   地址空間

  3. 給數組賦值 -->  數組名稱[下標] = 值;  //注意要類型匹配

  4. 使用數組  -->  數組名稱[下標] 

 

1             //定義數組
2             int[] num;
3             //開辟空間
4             num = new int[10];
5             //給數組賦值
6             num[0] = 1;
7        //使用數組
8        int num = num[0];      

 

合二為一

  數組類型 [] 數組名稱 = new 數組類型[長度];

合三為一

  1. 數組類型 [] 數組名稱 = {值1,值2.....};

  2. 數組類型 [] 數組名稱 = new 數組類型[長度]{值1,值2.....}; //注意長度必須和值的長度匹配,或者長度可以不給 ,Java不能用這樣方式

  3. 數組類型 [] 數組名稱 = new 數組類型[]{值1,值2.....};  //注意長度必須和值的長度匹配,或者長度可以不給 ,Java不能用這樣方式

1             int[] num = { 1, 2, 3, 4 };
2             int[] num2 = new int[] { 1, 2, 3, 4 };
3             int[] num3 = new int[4] { 1, 2, 3, 4 };    

 

循環遍歷數組

  * 如果只是簡單的遍歷數組,優先使用foreach

  * 當在循環中需要改變數組中的元素,或數組的元素發生改變,就必須使用for循環

 

 

 

 1       //foreach遍歷
 2        foreach (int num in nums)
 3             {
 4                 Console.WriteLine(num);
 5             }
 6       //for循環 改變數組的元素
 7       for (int i = 0; i < nums.Length; i++)
 8             {
 9                 nums[i] = 1;//把全部數組的元素都改為1
10                 Console.WriteLine(nums[i]);
11             }
12 
13       //錯誤寫法
14         foreach (int num in nums)
15             {
16                 num = 1;//把全部數組的元素都改為1
17                 Console.WriteLine(num);
18             }      
19 出現的錯誤信息:'num"是一 個foreach迭代變量”,無法為它賦值  所以不可以使用foreach改變數組中的元素,輸出遍歷還是可以的

 

數組的常用方法

Max()和Min()

max查找數組中值最大的元素,min查找數組中最小的元素

使用方法-->數組名稱.Max(); 返回值:int類型 

  

            //定義數組
            int[] array = new int[10];
        //輸出最大值
             int max = array.Max();
             //輸出最小值
             int min = array.Min();
             Console.WriteLine("\n最大值:{0},最小值:{1}",max,min);       

Contains()

判斷數組是否包含內容:(目前發現只可以判斷int類型)

 1 bool result = array.Contains(number); 

Sum()

計算數組中的數值的總和:

 1 int sum = array.Sum(); 

Count()

獲取數值元素的總數:

 1 int arrayCount = array.Count();

2 Console.WriteLine("數組一共有多少元素:"+arrayCount); 

數組類常用的靜態方法

靜態方法使用類打點使用  Array.....

IndexOf()

查找數組中的元素,返回下標

 int index = Array.IndexOf(array數組, number自定義內容); 

LastIndexOf()

查找數組中的元素,返回最后一個元素的下標

 int index = Array.LastIndexOf(array數組, number自定義內容); 

Sort()

升序排序數組的元素,可以排序數字和字母

Array.Sort(需要排序的數組);

Reverse()

降序排序數組的元素,可以排序數字和字母

Array.Reverse(需要排序的數組);

 

案例1

從控制台輸入5個商品的名稱, 將名稱保存到數組,輸出第三個商品的名稱

 1             //定義數組
 2             String [] commoditys = new String [5];
 3             //從控制台輸入5個商品的名稱, 將名稱保存到數組,輸出第三個商品的名稱
 4             for (int i = 0; i < 5; i++)
 5             {
 6                 //控制台輸入信息
 7                 Console.Write("請輸入第{0}個商品的信息:",(i+1));
 8                 commoditys[i] = Console.ReadLine();
 9             }
10             Console.WriteLine(commoditys[2]);
11             //防止一閃而過
12             Console.ReadLine();    

 案例二

從控制台輸入5個學員的成績,保存到數組,輸出平均分

 1         //定義數組
 2             int [] scores = new int[5];
 3 
 4             //計算平均分
 5             double avg = 0;
 6             double sum = 0;
 7             for (int i = 0; i < scores.Length; i++)
 8             {
 9                 Console.Write("請輸入第{0}個學員的成績:",(i+1));
10                 scores[i] = Convert.ToInt16(Console.ReadLine());
11                 sum += scores[i];
12             }
13             avg = sum * 1.0 / scores.Length;
14 
15             Console.Write("平均分是:{0}", avg);
16             //防止一閃而過
17             Console.ReadLine();

 案例三

從控制台輸入10位顧客的年齡,保存到數組,
                輸出年齡大於35歲的比例以及最大年齡

 1             //定義數組
 2             int[] ages = new int[10];
 3             //計數比例
 4             double count = 0;
 5             //for循環
 6             for (int i = 0; i < ages.Length; i++)
 7             {
 8                 Console.Write("請輸入第{0}位客戶的年齡:",(i+1));
 9                 ages[i] = int.Parse(Console.ReadLine());
10                 if (ages[i] > 35)
11                 {
12                     count++;
13                 }
14             }
15             //計算比例
16             count = count / ages.Length ;
17             //最大值
18             int maxAge = ages.Max();
19             Console.WriteLine("比例:{0},最大年齡:{1}",count,maxAge);
20             Console.ReadLine();    

這里用到了數組的一個方法,Max=獲取數組中的最大值

 

案例四

 

 存在輸出數字X存在於數組,下標是? ,不存在就輸出數字X不存在

 1            //隨機數
 2             Random random = new Random();
 3             //定義數組
 4             int[] nums = new int[10];
 5             //控制台輸入
 6             Console.Write("請輸入任意數字:");
 7             int number = int.Parse(Console.ReadLine());
 8             Console.Write("\n排序前:");
 9             
10             //下標
11             int index = -1;
12             //生成隨機數 獲取下標
13             for (int i = 0; i < nums.Length; i++)
14             {
15                 nums[i] = random.Next(100);
16                 Console.Write("{0},",nums[i]);
17                 if (nums[i] == number)
18                 {
19                     index = i;
20                 }
21             }
22 
23             //升序排序
24             Array.Sort(nums);
25             Console.Write("\n排序后:");
26             for (int i = 0; i < nums.Length; i++)
27             {
28                 Console.Write("{0},", nums[i]);
29             }
30             
31             //判斷是否包含該輸入的數字
32             if (index != -1)
33             {
34                 Console.WriteLine("\n數字{0}存在於數組,下標是:{1}",number,index);
35             }
36             else
37             {
38                 Console.WriteLine("\n數字{0}不存在於數組",number);
39             }
40 
41             Console.ReadLine();    




第二種方式

 1            //隨機數
 2             Random random = new Random();
 3             //定義數組
 4             int[] nums = new int[10];
 5             //控制台輸入
 6             Console.Write("請輸入任意數字:");
 7             int number = int.Parse(Console.ReadLine());
 8             Console.Write("\n排序前:");
 9            
10 
11             //生成隨機數 獲取下標
12             for (int i = 0; i < nums.Length; i++)
13             {
14                 nums[i] = random.Next(100);
15                 Console.Write("{0},",nums[i]);
16             }
17             
18             //升序排序
19             Array.Sort(nums);
20             Console.Write("\n排序后:");
21             for (int i = 0; i < nums.Length; i++)
22             {
23                 Console.Write("{0},", nums[i]);
24             }
25 
26             //是否包含...
27             bool result = nums.Contains(number);
28 
29             ////判斷是否包含該輸入的數字
30             if (result)
31             {
32                 int index = Array.IndexOf(nums,number);
33                 Console.WriteLine("\n數字{0}存在於數組,下標是:{1}",number,index);
34             }
35             else
36             {
37                 Console.WriteLine("\n數字{0}不存在於數組",number);
38             }
39 
40             Console.ReadLine();

 

案例五

 

 1             //定義數組
 2             char[] strs = {'a','c','u','b','e','p','f','z'};
 3             Console.Write("原序:");
 4             foreach (char str in strs)
 5             {
 6                 Console.Write(" {0}",str);
 7             }
 8 
 9             //升序
10             Array.Sort(strs);
11             Console.Write("\n升序:");
12             foreach (char str in strs)
13             {
14                 Console.Write(" {0}", str);
15             }
16 
17             //降序
18             Array.Reverse(strs);
19             Console.Write("\n逆序:");
20             foreach (char str in strs)
21             {
22                 Console.Write(" {0}", str);
23             }
24             Console.ReadLine();

 

 

需要用到Array類的靜態方法進行排序

  * Array.Sort(strs);  //升序

  * Array.Reverse(strs);  //降序


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM