1、概念:
結構體是寫在main函數外的數據結構,由不同類型的數據組合成一個整體,這些組合在一個整體中的數據是互相聯系的
2、聲明方式:
struct 結構體名
{
成員變量(由類型名+成員名組成)
}
例:
public struct student//public是修飾符,可以不加,作用范圍為整個命名空間 { public int Code;//定義變量,每一個變量叫做結構體的屬性 public string Name; public string Sex; public int Age; public decimal Height; }
3、調用方法:
(1)初始化結構體(new一個)
(2)給結構體中的變量賦值
如:
//繼續使用上面結構體的定義 student ss = new student(); ss.Code = 101; ss.Name = "zhangsan"; ss.Sex = "nan"; ss.Height =173;
4、用結構體對代碼進行優化處理
----冒泡排序----
題目:輸入學生個數,挨個輸入姓名、身高、年齡,求平均年齡,然後按身高升序排出
思路:建立一個含有姓名、身高、年齡參數的結構體,再建立一個集合,通過for循環將每次初始化後的結構體類型帶著三種數據放入集合中。
答案:
Console.WriteLine("輸入學生個數:"); int n = int.Parse(Console.ReadLine()); ArrayList ar = new ArrayList();//建立集合填充數據 int sum =0; for (int i = 0; i < n; i++) { student ss = new student(); Console.Write("請輸入姓名:"); ss.Name =Console.ReadLine(); Console.Write("請輸入年齡:"); ss.Age = int.Parse(Console.ReadLine()); Console.Write("請輸入身高:"); ss.Height = int.Parse(Console.ReadLine().Trim()); ar.Add(ss);//在集合中增加一個student類型的數據 sum = sum+ss.Age;//算總分 } for (int i = 0; i < n; i++) { for (int j = i; j < n; j++) { //建立中間值,將ar[i]、ar[j]強制轉化為student的類型,然後判斷身高 student s1 = (student)ar[i]; student s2 = (student)ar[j]; if(s1.Height<s2.Height) { ar[i] = s2; ar[j] = s1; } } } foreach (student a in ar) { Console.Write("姓名:" + a.Name); Console.Write("身高:" + a.Height); Console.Write("年齡:" + a.Age); Console.Write("\n"); }