C#(二維數組/集合)



一、二維數組
int [,] array = new int[5,3];//有五個一維數組,每一個一維數組有3個元素

/打印出來一個“王”這個字string[,] wang = new string[,]{

 {" ","■","■","■","■","■"," "},
 {" "," "," ","■"," "," "," "},
 {" "," "," ","■"," "," "," "},
 {" "," ","■","■","■"," "," "},
 {" "," "," ","■"," "," "," "},
 {" "," "," ","■"," "," "," "},
 {"■","■","■","■","■","■","■"}
};
for (int i = 0; i < 7; i++)
{
 for (int j = 0; j < 7; j++)
{
 Console.Write(wang[i,j]);
 }
Console.WriteLine();
}

輸入班級人數,輸入每個人的語數英成績,求語文的總分,數學的平均分,英語的最高分和最低分

Console.Write("請輸入班級人數:");
int n = int.Parse(Console.ReadLine());
double sum1= 0;
double sum2 = 0;
double[,] a = new double[n, 3];
for (int i = 0; i < n; i++)
{
Console.Write("請輸入第"+(i+1)+"個人的語文成績:");
a[i, 0] = double.Parse(Console.ReadLine());
sum1 +=a[i,0];
Console.Write("請輸入第" + (i + 1) + "個人的數學成績:");
a[i, 1] = double.Parse(Console.ReadLine());
sum2 += a[i, 1];
Console.Write("請輸入第" + (i + 1) + "個人的英語成績:");
a[i, 2] = double.Parse(Console.ReadLine());
}
for (int i = 0; i < n;i++ )
{
for (int j = i; j < n-1;j++ )
{
if (a[i,2]<a[j+1,2])

{
double zhong=a[i,2];
a[i, 2] = a[j + 1, 2];
a[j + 1, 2] = zhong;

}
}
}
Console.WriteLine("語文總分為"+sum1+"");
Console.WriteLine("數學平均分為"+sum2/n+"");
Console.WriteLine("英語最高分為"+a[0,2]);
Console.WriteLine("英語最低分為"+a[n-1,2]);
Console.ReadLine();


二、多維數組
int[, ,] shuzu = new int[4, 3, 2];//有四個二維數組,每個二維數組里面有3個1維數組,每個1維數組里面有2個元素
string[, ,] gao = new string[3, 4, 1]

 {
{
 {"張三"},{"李四"},{"王五"},{"趙六"}
},
 {
 {"馮七"},{"王八"},{"張全蛋"},{"小沈陽"}
 },
 {
 {"劉能"},{"趙四"},{"趙本山"},{"岳雲鵬"}
}
};

 split 分離

一次性接收姓名、年齡、工作單位
Console.Write("請輸入您的姓名、年齡、工作單位(**-**-**):");
string quan = Console.ReadLine();
string[] array = quan.Split('-');
for (int i = 0; i < array.Length; i++)
{
 Console.WriteLine(array[i]);
}
Console.ReadLine();

三、ArrayList集合

集合不同於數組,是一組可變數量的元素的組合,這些元素可能共享某些特征,需要以某種操作方式一起進行操作。一般來說,這些元素的類型是相同的。

 

集合與數組的區別:數組是連續的、同一類型數據的一塊區域,而集合可以是不連續的、多種數據類型的。

ArrayList實現了IList、ICollection、IEnumerable接口;

ArrayList與Array的不同

(1)ArrayList是集合,而Array是數組;

(2)ArrayList是具體類,Array是抽象類;

(3)獲取數組的元素數時使用Length屬性,而獲取ArrayList集合的元素數時使用Count屬性;

(4)數組可以有多維,而ArrayList只能是一維。

ArrayList al = new ArrayList();//初始化
al.Add(5);
al.Add(3);
al.Add(6);
al.Add(4);
al.Add(1);
al.Add(2);
al.Add("2");
al.Add("hello");
al.Add(true);
al[3] = "你好";
al.Clear(); //移除所有元素
ArrayList al1 = new ArrayList();
al1 = (ArrayList)al.Clone();//克隆
Console.WriteLine(al1.Contains("2"));//判斷是否包含
Console.WriteLine(al1.IndexOf(11));//獲取第一次出現該元素的索引號
Console.WriteLine(al1.LastIndexOf(2));//獲取最后一次出現該元素的索引號
al.Insert(2,"Hello");//插入某個索引位置某個元素


al.Remove("hello");//移除某個第一次出現的元素

al.RemoveAt(3);//移除某個索引位置的元素

al.Sort();//排序 ,升序
al.Reverse();//翻轉整個集合
Console.WriteLine(al[2]);
Console.WriteLine(al.Count);
Console.ReadLine();

練習

//輸入班級人數,輸入每個人的姓名、語數英成績進入集合
//求語文的總分,數學的平均分,
//英語的最高分的人的姓名及所有科目的分數(冒泡排序)

//0 姓名 4 8 12
//1 語文成績5 9 13
//2 數學成績6 10 14
//3 英語成績7 11 15
Console.Write("請輸入班級人數:");
int n = int.Parse(Console.ReadLine());
double yu = 0;
double shu = 0;
ArrayList al = new ArrayList();
for (int i = 0; i < n; i++)
{
Console.Write("請輸入第{0}個人的姓名:",i+1);
al.Add(Console.ReadLine());
Console.Write("請輸入第{0}個人的語文成績:",i+1);
al.Add(double.Parse(Console.ReadLine()));
yu += double.Parse(al[al.Count - 1].ToString());
Console.Write("請輸入第{0}個人的數學成績:", i + 1);
al.Add(double.Parse(Console.ReadLine()));
shu += double.Parse(al[al.Count - 1].ToString());
Console.Write("請輸入第{0}個人的英語成績:", i + 1);
al.Add(double.Parse(Console.ReadLine()));
}
Console.WriteLine("所有信息輸入完畢,請按回車鍵繼續!");
Console.ReadLine();
Console.WriteLine("語文的總分是:"+yu);
Console.WriteLine("數學的平均分是:"+(shu/n));

for (int i = 3; i < 4*n-1; i+=4)
{
for (int j = i; j < 4 * n - 4; j += 4)
{
if (double.Parse(al[i].ToString()) < double.Parse(al[j + 4].ToString()))
{
//換姓名
object zhong = al[i - 3];
al[i - 3] = al[j + 1];
al[j + 1] = zhong;
//換語文
zhong = al[i - 2];
al[i - 2] = al[j + 2];
al[j + 2] = zhong;
//換數學
zhong = al[i - 1];
al[i - 1] = al[j + 3];
al[j + 3] = zhong;
//換英語
zhong = al[i];
al[i] = al[j + 4];
al[j + 4] = zhong;
}
}
}
Console.WriteLine("英語最高分的學生是{0},英語分數是{1},語文分數是{2},數學分數{3}",al[0],al[3],al[1],al[2]);
Console.ReadLine(); 

集合不同於數組,是一組可變數量的元素的組合,這些元素可能共享某些特征,需要以某種操作方式一起進行操作。一般來說,這些元素的類型是相同的。

集合與數組的區別:數組是連續的、同一類型數據的一塊區域,而集合可以是不連續的、多種數據類型的。


免責聲明!

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



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